LINUX.ORG.RU

Проверка передан ли параметр процедуре


0

0

Нужно написать сценарий, которому при вызове может быть передан параметр. В сценарии должна проводится проверка, если параметр передан, то нужно отобразить его на экран, а если параметр не был передан, то нужно отобразить на экран сообщение о том, что параметр не был передан.(Нужно использовать конструкцию if-then и команду test)

Пытался сам написать: #!/bin/bash if(test -z $1) then echo $1; exit 1 fi echo No parametr Но не работает: в не зависимости от того, передаётся процедуре параметр или нет, блок then всё равно выполняется. То есть, что то я не так делаю. Помогите пожалуйста....

Совет: попробуйте User Line Breaks или LORCODE с тегом [code=bash]...[/code]

Итак,

#!/bin/bash
if [ -z $1 ]
then
echo «Parameter not set!»
else
echo $1
fi

AITap ★★★★★ ()

Вы уже прочли Advanced Bash Scripting Guide?

AITap ★★★★★ ()
#!/bin/sh
[ $# -gt 0 ] && echo "$1" || echo 'No parameter!'
Deleted ()

Спасибо AITap и mironov_ivan .

Advanced Bash Scripting Guide пока к сожалению не прочитал:( у меня с английским плохо:(

vvt123 ()
Ответ на: комментарий от AITap

А где у Вас if-then и test? =)

[ - это почти то же, что и test. А if-then автор темы пусть сам добавит =).

Deleted ()
Ответ на: комментарий от abraziv_whiskey

А если «Parameter not set!», то как их различить?

В смысле что различить? Пустую строку от отсутствия аргумента? По количеству переданных аргументов - $#.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.