Passare argomenti con spazi tra uno script (bash)

Ho i seguenti due script bash

cenere:

#!/bin/bash ./b.sh 'My Argument' 

b.sh:

 #!/bin/bash someApp $* 

Il binario someApp riceve $* come 2 argomenti (‘My’ e ‘Argument’) invece di 1.

Ho provato diverse cose:

  • L’esecuzione di someApp solo attraverso b.sh funziona come previsto
  • Iterate + echo gli argomenti in b.sh funzionano come previsto
  • L’utilizzo di [email protected] invece di $* non fa differenza

$* , non quotato, si espande in due parole. È necessario citarla in modo che someApp riceva un singolo argomento.

 someApp "$*" 

È ansible che tu voglia utilizzare [email protected] invece, in modo che someApp riceverebbe due argomenti se dovessi chiamare b.sh as

 b.sh 'My first' 'My second' 

Con someApp "$*" , someApp riceverebbe un singolo argomento My first My second . Con someApp "[email protected]" , someApp riceve due argomenti, My first e My second .