PDA

Просмотр полной версии : Ключи для скрипта


Сергей
27.07.2007, 10:59
Забыл как можно создать несколько ключей для shell-скрипта?
Наподобие: скрипт test, если запустить её с ключом -d, он будет учитывать текущую дату (или другое), если с ключом -l, то выведет дополнительно список файлов и пр.

Артур Крюков
27.07.2007, 11:30
Забыл как можно создать несколько ключей для shell-скрипта?
Наподобие: скрипт test, если запустить её с ключом -d, он будет учитывать текущую дату (или другое), если с ключом -l, то выведет дополнительно список файлов и пр.

не понял... как ловить параметры командной строки в шелскрипте?

Сергей
27.07.2007, 11:54
да

Сергей
27.07.2007, 12:03
getopts?

Артур Крюков
27.07.2007, 12:10
getopts?

Можно getopts, можно $1 - $9
как больше нравится

Сергей
27.07.2007, 12:31
попробую

Сергей
30.07.2007, 10:05
Все получилось прекрасно, только немного не понятно как сделать такое:
- если я использую ключи, скрипт работает соответственно используемым ключам
- если я запускаю скрипт без доп.параметров, то он отработает по определенному алгоритму
если сделать так:
while getopts u:ql KEY
do
case $KEY in
u);;
q);;
l);;
esac
done
echo "123"
exit 0
при запуске скрипта без ключей он выдаст 123, а если я запускаю с любым ключом он отрабатывает как положено и потом выдает 123. А мне нужно либо без них, либо так, как написано для ключа. Подозреваю что надо использовать if

Сергей
30.07.2007, 11:02
Сделал так:
while getopts u:ql KEY
do
case $KEY in
u);;
q);;
l);;
esac
done
if [ "$#" = 0 ]
then
echo "123"
else
break
fi
exit 0

Артур Крюков
30.07.2007, 13:17
getopts не контролирует количество ключей, переданных программе. Поэтому контроль количества ложится на ваши плечи. $# - как раз то, что нужно.