我只是尝试下面的代码并且它无法运行..请建议更正此代码..
echo abc.txt | while read name; do find . -name $name; done
输出成功:./ kk / abc.txt
echo 'abc.txt pqr.txt' | while read name; do find . -name $name; done
输出错误:找到:0652-009缺少连接
echo "abc.txt pqr.txt" | while read name; do find . -name $name; done
输出错误:找到:0652-009缺少连接
与
相同的错误echo "abc.txt" "pqr.txt" | while read name; do find . -name $name; done
echo 'abc.txt' 'pqr.txt' | while read name; do find . -name $name; done
请建议如何解决此问题...
答案 0 :(得分:4)
问题是多个条目作为一行发送到管道中,读取将两个字符串都接收到name
,然后处理包含两个字符串的$name
。
你应该使用类似的东西:
echo -e "abc.txt\npqr.txt" | while read name; do find . -name $name; done
即。用换行符分隔项目。
您应该尝试使用echo "'$name'"
代替find
进行调试,并且会暗示发生了什么。
此外,我会在查找中使用$name
引用,好像文件名应该在其名称中有空格,然后您将得到与您最初经历的相同的错误消息。 / p>