这是我的问题我已经在这个shell脚本上工作了一段时间,我不知道我做错了什么。 shell脚本会出现grep:textfile1.txt no such file or directory
和line 10 syntax error 'else'
等错误。我不确定哪种语法去哪里。这是我的剧本。
#!/bin/bash
echo "Find The file you want to search the word in"
read filename
cd ~ $filename
echo "enter the word you want to find"
read word1
grep -F "$word1" "$filename"
if $word exists in $filename then
echo "$word exist in $filename"
else
echo "the file or word doesn't exist!"
答案 0 :(得分:2)
您的脚本中有太多错误:
cd~ $ filename
$filename
毫无意义,shell会忽略它,它会将工作目录更改为您的主目录。还要记住,当您在指定的文件名上运行grep
时,更改到主目录会影响程序的行为,因为相对路径必须相对于您的主目录才能工作,否则文件可能会找不到。
grep -F“$ word1”“$ filename”
您运行grep
但不评估其结果。
如果$ filename中存在$ word,那么
bash中没有“exists”运算符。
而且,你必须在then
之前加一个分号,或者把它放在一个新的行上。
最后,您没有为fi
语句提供结束if
。
我认为你的意思是这样的:
#!/bin/bash
echo "Find The file you want to search the word in"
read filename
cd
echo "enter the word you want to find"
read word1
if grep -qF "$word1" "$filename" 2>/dev/null; then
echo "$word1 exists in $filename"
else
echo "the file or word doesn't exist!"
fi