我正在编写一些脚本来创建目录,但我首先要确保用户插入的名称是正确的。对于这个问题,我写了类似下面的内容(FILE.txt是用户名保存的文件)
if grep -q '>' FILE.txt
then
echo "You should avoid inserting ">" in your code!"
fi
但似乎bash认为我想插入输出,所以它给出了这个错误: -sh:意外令牌`换行符'附近的语法错误 有人有想法吗? tnx寻求帮助
答案 0 :(得分:5)
问题不在于您的grep
行,而在于您的echo
行。你的shell认为它是:
echo "You should avoid inserting " > " in your code!"
您可以通过删除句子中间的引号或使用单引号来解决此问题:
echo "You should avoid inserting '>' in your code!"
答案 1 :(得分:1)
您必须在echo语句中转义引号:
if grep -q '>' file.txt; then
echo "You should avoid inserting \">\" in your code!"
else
echo "code is good"
fi