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.shfunciona como se esperaba - Iterar + echo los argumentos en
b.shfunciona 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 .