2012-08-08 9 views
9

Digamos que hay un script s1, y necesito pasar el argumento $1 con el valor foo bar, con espacio en él. Esto se puede hacercómo pasar argumento de línea de comandos con espacio en scripts bash

./s1 "foo bar"

Sin embargo, cuando quiero ejecutar el comando anterior en otro script (por ejemplo s2), ¿cómo debería decirlo? Si lo puse como arriba, foo bar se interpretará como dos argumentos (a s1) en lugar de uno.

Respuesta

15

Usted puede tratar de citar $1:

./s2 "$1" 
+0

¿le importa explicar lo que haría '' s2'' parece? No necesito pasar el argumento a '' s2'', sino a '' s1''. – Richard

+0

@Richard No estoy muy seguro de lo que está preguntando. ¿Puedes aclarar? – cnicutar

-4

¿Qué tal:

./s1 foo\ bar 

¿Funcionaría?

+0

esto no funciona ... aunque – Richard

+1

Gracias por la sugerencia. No tenía la reputación suficiente para poder hacer un comentario sobre esta publicación. Lo tendré en cuenta la próxima vez. – kch

1

Usa comillas simples.

./script 'this is a line'

Considerar sustituciones de variables utilizan comillas dobles

./script "this is a line"

Cuestiones relacionadas