Затрудняюсь с внятным отвлеченным описанием, поэтому, с позволения, перейду сразу же к конкретике :) :
Есть скрипт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\"".
Как быть?
Форум —
Development