if: Синтаксис выражения.затем: команда не найдена - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь создать простой оператор if, который принимает первый набор входных данных в качестве аргумента, затем второй ввод в качестве имени файла, а затем запускает их для оператора egrep.Я получаю сообщение об ошибке:

if: Синтаксис выражения.затем: Команда не найдена.

вот что я имею до сих пор ...

#!/bin/csh

if [ "$#" -ne 2 ]; then
        echo "usage ./Reagan_lab3.sh (-e|-p) input file"
exit 1

fi

if [ $1 == "--e" ]; then
egrep -o "(([0-9]{3})|[0-9]{3})[ -][0-9]{3}[ -][0-9]{4}" $2

elif [ $1 == "--p" ]; then
egrep -o "\b[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+\b" $2

else;
echo "please make a selection, -e for email or -p for phone number."

exit 2

fi

Я не смог найти то, что он ищет.Любая помощь будет великолепна.

1 Ответ

0 голосов
/ 20 сентября 2018

Ваша строка интерпретатора (первая строка) имеет имя csh, но синтаксис вашего скрипта выглядит как стиль оболочки Bourne (bash, ksh и т. Д.).

Измените эту первую строку на #!/bin/sh (или аналогичный), затем, возможно, запустите ваш скрипт через ShellCheck , чтобы найти другие синтаксические проблемы и проблемы использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...