Bash错误:读取文件时重定向不明确
该脚本的主要思想是在日志文件中查找模式,并在日志中列出一个或多个模式时执行某些操作Bash错误:读取文件时重定向不明确,bash,Bash,该脚本的主要思想是在日志文件中查找模式,并在日志中列出一个或多个模式时执行某些操作 flag=No while read line; do if [ $line = “^PAT[0-9]” ]; then patnum=`awk –f= ‘{print $1}’` pattern=`awk –f= ‘{print $2}’` res=`grep –c $pattern FILENAME` if res > 0; then echo "Do so
flag=No
while read line;
do
if [ $line = “^PAT[0-9]” ]; then
patnum=`awk –f= ‘{print $1}’`
pattern=`awk –f= ‘{print $2}’`
res=`grep –c $pattern FILENAME`
if res > 0; then
echo "Do something"
flag=yes
fi
fi
done < $Pattern_File
if [ flag = yes]; then
sleep 5
echo "End result"
fi
在一切都设置好之后,我得到了一个错误:bash:$Pattern\u File:dimensional redirect,或者当我这样设置时:done<$Pattern\u File->错误不是这样的文件或目录
有什么想法吗 我认为$Pattern_File变量是空的,这就是错误的原因,bash reads done<就是这样。尝试回显变量。Pattern_File是与脚本位于同一目录中的文件名。而读行应该直接从文件中读取,如果我没有错,请再次阅读我的评论。不要假设变量的内容:检查它。或者,如果文件名为Pattern_file,则删除美元符号,因为它是字符串,而不是变量。。。如果是这种情况,请删除你的问题,因为这只是由于打字错误,因此对未来的读者来说毫无用处:你确定你在if[]中有正确的双引号吗?在上面的标记中,它们与我不同。在echo命令中,它们都应该看起来像最后的那个。您确定bash可以为您进行模式匹配吗?awk调用中的单引号也是如此。这些似乎是“而不是”。
PAT01="String1"
PAT02="String2"
PAT03="String50"