我正在编写一些脚本来创建一个目录,但是我希望首先确保用户输入的名称是正确的。为此,我写了类似下面这样的代码(FILE.txt是保存用户名的文件)
if grep -q '>' FILE.txt
then
echo "You should avoid inserting ">" in your code!"
fi
但是似乎bash认为我想要插入输出,所以它会给出这个错误: -sh:'newline'附近有语法错误 有人有什么想法吗?谢谢帮助
我正在编写一些脚本来创建一个目录,但是我希望首先确保用户输入的名称是正确的。为此,我写了类似下面这样的代码(FILE.txt是保存用户名的文件)
if grep -q '>' FILE.txt
then
echo "You should avoid inserting ">" in your code!"
fi
但是似乎bash认为我想要插入输出,所以它会给出这个错误: -sh:'newline'附近有语法错误 有人有什么想法吗?谢谢帮助
grep
命令行,而在于你的 echo
命令行。你的 shell 将其视为:echo "You should avoid inserting " > " in your code!"
您可以通过去掉句子中间的引号或使用单引号来简单解决此问题,例如:
echo "You should avoid inserting '>' in your code!"
>
周围的 ""
:echo You should avoid inserting '">"' in your code!
- Arkadiusz Drabczyk您需要在echo语句中转义引号:
if grep -q '>' file.txt; then
echo "You should avoid inserting \">\" in your code!"
else
echo "code is good"
fi