如何使用find for if-condition的输出?

时间:2011-07-27 11:39:06

标签: linux bash

我希望如果此命令输出任何内容

find /var/www/cgi-bin -name touch -cmin 10

然后应该“好”回应。

尝试了

if [ $(find /var/www/cgi-bin -name touch -cmin 10) ]; then echo "ok";fi

但它永远不会回应任何事情。

4 个答案:

答案 0 :(得分:3)

$(..)附近加上双引号:

if [ "$(find /var/www/cgi-bin -name touch -cmin 10)" ]; then echo "ok"; fi

这会将find的输出解释为单个单词。

答案 1 :(得分:2)

这应该对你有用

if [-n“$(find ./var/www/cgi-bin -name touch -cmin 10)”];然后回显ok; fi

答案 2 :(得分:2)

更好的是你可以这样做:

find /var/www/cgi-bin -name touch -cmin 10 -exec echo "ok" \;

HTH

答案 3 :(得分:1)

if find ... | grep . > /dev/null; then
  echo found something
fi

如果您需要输出:

if h=$(find ... | grep . ); then
  echo found $h
fi