处理意外的bash命令输出

时间:2014-03-03 12:25:38

标签: bash error-handling hp-ux

我试图处理for循环中命令的意外输出。我正在使用专有的解压缩实用程序( mfunzip ),但是当实用程序遇到损坏的文件时,它开始在InputBit中回显出无穷无尽的致命错误!"消息。

我正在尝试捕获输出并继续循环到下一个文件。

for FILE in $(ls); do
   if [ -d "$FILE" ]; then
      ...
      ...
      # without command output, it runs indefinitely
      output=$(mfunzip $currentfile $extractdir)

      # it never reaches here
      echo $output
      if [[ $output = *Fatal* ]]; then
         continue  
      fi
   fi
done

然而它似乎没有工作,因为它阻挡在输出= $(mfunzip ...) ...我会假设它无休止地输出到 $输出即可。另一个问题似乎是"致命错误"可能不会立即显示,而是尝试 mfunzip 文件的中途。

有没有更好的方法来处理这种类型的输出?

1 个答案:

答案 0 :(得分:0)

要“处理命令的(意外或预期)输出”,您应该使用:http://en.wikipedia.org/wiki/Expect,这是专为此类事物设计的。