在shell脚本中查找给出一个未知的谓词`-v'错误
输出:
/bin/find /home/dev/public_html/ | grep -v "^secure" | grep -v "^folder1/folder2"
/bin/find: unknown predicate `-v'
代码:
FINDP=" | grep -v \"^secure\" | grep -v \"^folder1/folder2\""
echo "/bin/find /home/dev/public_html/$FINDP";
`/bin/find /home/dev/public_html/$FINDP`
任何想法如何解决这个问题? (我们的想法是稍后将反引号的结果存储在变量中。)
答案 0 :(得分:2)
您无法在字符串中存储复杂命令。它不起作用。这是Bash FAQ 050。
特别是在您的情况下,shell不会将|
视为shell管道,而是将其视为常规字符,因此find
会将-v
参数视为grep
并且抱怨。