在下面的代码我试图搜索文件。 在这里,我想排除那些以'#'开头的文件
请帮我解决这个问题。
#!/bin/bash
while read -r name
do
if [[ $name!= "#" ]]
then
find ./2016* -name *files.txt
fi
done < file.txt
低于错误:
conditional binary operator expected
syntax error near `"#"'
if [[ $name!= "#" ]]
答案 0 :(得分:3)
在$name
和!=
您需要排除以#
开头的行。不只是只有#
的行。为此,将模式更改为"#*"
在name
命令中使用变量find
。
#!/bin/bash
while read -r name
do
if [[ $name != "#*" ]]
then
find ./2016* -name "$name"
fi
done < file.txt
此处提到了排除注释行的更好方法 - bash loop skip commented lines
答案 1 :(得分:1)
空格和双引号很重要。在$name
和!=
之间保留空格
并为./2016*
和*files.txt
#!/bin/bash
while read -r name
do
if [[ $name != "#" ]]
then
find "./2016*" -name "*files.txt"
fi
done < file.txt