как я могу заставить это работать? Я хочу использовать разные функции для своей команды, моя проблема в том, как передать аргументы функции add.sh
? find.sh
работает нормально, но первые две команды говорят, что нет аргумента для опции -v
/ -a
. Что я делаю не так?
while getopts v:a:s opt
do
case "$opt" in
v) ./view.sh;;
a) ./add.sh;;
s) ./find.sh;;
getopts
, что для параметров-v
и-a
требуются аргументы. Вы передаете аргументы этому сценарию? Если вы это сделаете, вы не должны получить ошибку отgetopts
. Вы также, кажется, спрашиваете, как передать этот аргумент (или другие аргументы?) вызываемой функции. Это два очень разных вопроса. На первый ответ частично можно получить, прочитав, как работаетgetopts
. Ответом на второй является отказ от запуска сценария до тех пор, пока вы не соберете все аргументы. - person Etan Reisner   schedule 22.09.2014view.sh
вы ожидаете передать из сценария верхнего уровня$BOOK
? Вы вызываете сценарии с аргументами так же, как вы передаете аргументы командам в оболочке, вы просто помещаете их в командную строку. - person Etan Reisner   schedule 22.09.2014