Bash / echo和pattern

时间:2013-06-10 14:17:01

标签: linux bash

我有一个以“xx”开头的文件,我想找到它并在其上执行一些bash命令。

为了找到它,我写了下一个命令:

b= 'echo $(ls -r /var/www/xx*)'

但是它说No such file or directory,而xxbr7.log就在那里。

我怎么能找到它?

2 个答案:

答案 0 :(得分:2)

因为在=之后有一个空格所以它将整个'echo $(ls -r /var/www/xx*)'字符串解释为执行命令(变量b在其环境中设置为空字符串。 )

如果您尝试将b设置为字符串echo /var/www/xxbr7.log,那么您需要:

b='echo $(ls -r /var/www/xx*)'

=字符后没有空格。

如果您尝试将其设置为字符串/var/www/xxbr7.log,那么您可以简化它:

b=$(ls -r /var/www/xx*)

或者对于只有一个文件执行$(ls -r /var/www/xx*)的特殊情况是不必要的,您可以说/var/www/xx*

b=/var/www/xx*

答案 1 :(得分:2)

您可以使用命令:

find . -name 'mystring*'

找到。