traduccion - bash ubuntu
Pasando argumentos con espacios entre(bash) script (1)
Tengo el siguiente bash dos scripts
ceniza:
#!/bin/bash
./b.sh ''My Argument''
b.sh:
#!/bin/bash
someApp $*
El binario someApp recibe $*
como 2 argumentos (''Mi'' y ''Argumento'') en lugar de 1.
He probado varias cosas:
- Ejecutar someApp solo a través de
b.sh
funciona como se esperaba - Iterar + echo los argumentos en
b.sh
funciona como se espera - Usar
$@
lugar de$*
no hace una diferencia
$*
, sin comillas, se expande a dos palabras. someApp
citarlo para que someApp
reciba un solo argumento.
someApp "$*"
Es posible que desee usar $@
lugar, para que someApp
reciba dos argumentos si llamara b.sh
como
b.sh ''My first'' ''My second''
Con someApp "$*"
, someApp
recibiría un solo argumento My first My second
. Con someApp "$@"
, someApp
recibiría dos argumentos, My first
y My second
.