linux - 找到 : paths must precede expression

标签 linux shell centos centos6

我在两台机器上使用 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/

相关文章:

bash - 如何在大量远程服务器上运行快速脚本?

macos - 使用 sips 从一个 png 文件创建一个 icns 文件

apache - HTTPD 不会在 Centos OS 7/Apache 2.4.6 上启动

linux - 套接字和 socks 有什么区别?

c++ - 修复 linux 中缺少的 boost 共享库

bash - 打开多个终端并执行不同命令的 Shell 脚本

PHP进程加载并卡住所有CPU

php - PHP 5.3.8 或更高版本的 CentOS 存储库?

linux - Cygwin:从 32 位文件到 64 位文件

android - 如何在 Android 上的 LXC 容器中运行 Linux 发行版?