tutorial traduccion script comandos bash

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 .