Затрудняюсь с внятным отвлеченным описанием, поэтому, с позволения, перейду сразу же к конкретике :) :
Есть скрипт1 на баше, из него вызывается скрипт2, которому передаются аргументы через переменную:
[script1.sh]
#!/bin/bash
arguments="-v -d Nov 19"
./script2.sh $arguments
[script2.sh]
#!/bin/bash
while [ ! -z "$1" ]; do
case "$1" in
-v)
verbose=1
shift 1
;;
-d)
date="$( date -d $2 +%s )"
shift 1
;;
esac
done
echo '$verbose = '$verbose
echo '$date = '$date
$ ./script1.sh
date: неверная дата `Nov'
^C
$
Т.е. проблема в том, что никак не возможно объяснить ключу -d, что Nov и 19 следует
считать за один аргумент. Даже если arguments="-v -d \"Nov 19\"".
Как быть?
Ответ на:
комментарий
от Deleted
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Управление выходом со скрипта и цикла, вывод сообщения. (2019)
- Форум Bash: парсинг параметров (2025)
- Форум Использование getopts и case (2015)
- Форум Почему процесс создается два раза? (2020)
- Форум Скелет передачи сигналов в функцию (2025)
- Форум и еще один [:|||:] :D (2011)
- Форум bash, getopts (2016)
- Форум Скрипт на Bash (2010)
- Форум Не выполняются скрипты Shell (2007)
- Форум Не работает скрипт: слишком много аргументов (2017)