GNU/Linux >> Tutoriales Linux >  >> Linux

¿Transferir una lista de valores a un script Bash?

tengo un guion myScript .

Se necesitan dos argumentos. myScript arg1 arg2 .

Digamos que tengo tres conjuntos de argumentos.

argA1 argB1
argA2 argB2
argA3 argB3

¿Hay alguna manera de canalizar cada línea a myScript. Estoy abierto a tener el conjunto de argumentos en un archivo, tal vez use xargs. No estoy seguro de qué investigar.

Así que ejecutaría un comando como el ejemplo falso a continuación:

cat myFile | xargs > myScript

No tener otro script, solo comandos en la línea de comandos.

Respuesta aceptada:

Solo:

xargs -l1 <myFile myScript

-l1 le dice a xargs para ejecutar myScript una vez por cada 1 l línea de entrada, con las palabras en ese 1 l ine pasado como argumentos separados.

Para xargs , las palabras se separan con espacios en blanco, y aún puede tener espacios en blanco (incluso saltos de línea) en una palabra usando comillas. Tenga en cuenta, sin embargo, que mientras xargs admite "..." , '...' y \ para citar como la mayoría de los shells, su análisis es diferente al de los shells tipo Bourne. En particular, no hay procesamiento de barra invertida ni en "..." ni '...' y solo \ puede escapar de una nueva línea.

Por ejemplo, myFile podría contener:

word1.1 word1.2
"word 2.1" 'word 2.2'
"word'3.1" 'word"3.2'
'word"'"4'1" word\"4\'2
'word '\
5.1 "word "\
5.2

Y

xargs -l1 <myFile printf 'First word: "%s", second word: "%s"\n'

produciría:

First word: "word1.1", second word: "word1.2"
First word: "word 2.1", second word: "word 2.2"
First word: "word'3.1", second word: "word"3.2"
First word: "word"4'1", second word: "word"4'2"
First word: "word
5.1", second word: "word
5.2"

Con la implementación GNU de xargs , puedes mejorarlo a:

xargs -l1 -r -a myFile myScript

Lo cual tiene la ventaja de dejar stdin solo y de no ejecutar myScript if myFile está vacío.


Linux
  1. ¿Se puede conectar un script Bash a un archivo?

  2. Typeset -a ¿Está dando un error en el script?

  3. Bash Script para completar una plantilla?

  4. Bash Script - Ejemplo de Hola mundo

  5. Bash para ejemplos de bucle

35 ejemplos de secuencias de comandos Bash

Cómo ejecutar un script Bash

Cómo dividir una cadena en Bash Script

Ejecutar script bash desde URL

nombre base con espacios en un script bash?

Ejecute el comando bash en la canalización de jenkins