Linux Bash Shell脚本:如何“ls”目录并检查一些输出字符串?

时间:2013-07-11 04:28:08

标签: linux bash shell grep

我只是Linux Shell Scripting的新手。我需要知道的是,通常在命令行中,我们只使用:

# ls /var/log
audit            ConsoleKit     cups        maillog           messages           ntpstats  secure-20130616   spooler-20130623  vsftpd.log-20130616
boot.log         cron           dmesg       maillog-20130616  messages-20130616  prelink   secure-20130623   spooler-20130701  vsftpd.log-20130623
... . . . ..

然后

# ls /var/aaaaaaaaaaaaaaa
ls: cannot access /var/aaaaaaaaaaaaaaa: No such file or directory

使用Shell脚本:

  • 我如何运行命令:# ls /var/aaaaaaaaa
  • 然后检测是否有输出字符串ls: cannot access

注意:您可能会问我是否只想检测失败。或输出字符串。我非常渴望知道这两种方式。谢谢。

1 个答案:

答案 0 :(得分:4)

检查目录:

if [ ! -d '/var/aaaaaaa' ]; then
   echo 'no dir!'
fi

对于档案:

if [ ! -f '/var/aaaaaaa' ]; then
   echo 'no file!'
fi

检查输出:

if ls '/var/aaaaaaa' 2>&1 | grep 'No such'; then  
   echo 'no such'; 
fi

检查ls何时失败:

if ! ls '/var/aaaaaaa' &> /dev/null; then 
  echo 'failed'
fi