Передача аргументов с пробелами между (bash) скриптом
у меня есть следующие баш скрипт
а.Ш.:
#!/bin/bash
./b.sh 'My Argument'
б.Ш.:
#!/bin/bash
someApp $*
двоичный файл someApp получает $* как 2 аргумента ("мой" и "аргумент") вместо 1.
Я проверил несколько вещей:
- запуск someApp только через
b.shработает - итерация + Эхо аргументы в
b.shработает - используя
$@вместо$*не делает a разница
1 ответ:
$*, без кавычек, расширяется до двух слов. Вы должны процитировать его так, чтоsomeAppполучает один аргумент.someApp "$*"вполне возможно, что вы хотите использовать , так что
someAppполучил бы два аргумента, если бы вы позвонилиb.shкакb.sh 'My first' 'My second'С
someApp "$*",someAppполучит один аргументMy first My second. СsomeApp "$@",someAppполучит два аргумента,My firstиMy second.