Вот мой код:Сравнение параметров командной строки в строку
#!/bin/bash
if [ "$#" -ne 2 ] ; then
echo "$0: exactly 2 arguments expected"
exit 3
fi
if [$1 != "file" -a $1 != 'dir'] ; then
echo "$0: first argument must be string "file" or "dir""
exit 1
elif [-e $2 -a -r $2]; then
if ["$1" = "file" -a -f $2] ; then
echo YES
elif ["$1" = "dir" -a -d $2] ; then
echo YES
else
echo NO
fi
exit 0
else
echo "$0: $2 is not a readable entry"
exit 2
fi
Если я бегу ./lab4 file filename1
он будет проверять, если первый параметр является строкой «файл» или «реж», а затем, если первый параметр «file» и filename1 - это файл, он будет печатать «да». То же самое для реж.
$1
и $2
. Код будет выводить:
./lab04Q2: line 7: [file: command not found
./lab04Q2: line 10: [-e: command not found
, хотя я и поставил 2 параметра при запуске программы.
Привет, Янсон, я отредактировал ваш вопрос для вас. В будущем рассмотрите возможность использования 4-х пространственного отступа во всем, что должно рассматриваться как «код» в ваших сообщениях здесь. –
спасибо, я думал, что отступ означал использование вкладки, но это не сработало – JA3N