我在两台机器上使用 CentOS 6.4 final。我正在执行一个脚本。
该脚本包含 find
命令
path=$1
searchstring=$2
echo `find $path -name $searchString`
for filename in `find $path -name $searchString`
do
echo "$filename"
echo
done
./findfiles.sh /var/log/ *.txt
上面的脚本执行正常并打印文件。但是在第二台机器上我得到了 usage error: find: paths must precede expression
背后的原因是 *.txt 在 find 命令中被扩展了。更改后
对于 中的文件名,找到 $path -name "$searchString"
它执行得很好。
为什么第一台 CentOS 机器上没有出现语法错误?
最佳答案
引用你的 shell 参数:
$ ./findfiles.sh /var/log/ '*.txt'
关于linux - 找到 : paths must precede expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21304188/