我正在尝试创建一个简单的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
我一直无法找到想要的东西。任何帮助都会很棒。
答案 0 :(得分:3)
您的解释器行(第一行)的名称为csh
,但是您的脚本语法看起来像是Bourne Shell样式(bash
,ksh
等)。
将第一行更改为#!/bin/sh
(或类似名称),然后通过ShellCheck运行脚本以查找其他语法和用法问题。