Variable

將錯誤重定向到 /dev/null

  • February 22, 2018

我有一個帶有該行的 shell 腳本

COMPRESS_OPTION=`which compress`

我們的伺服器中沒有compress安裝實用程序,因此它給出了錯誤

which: no compress in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin)

螢幕上。所以我嘗試了

COMPRESS_OPTION=`which compress 2>/dev/null`

即使那樣我在螢幕上也出現錯誤。

不要使用which,使用 POSIX 標準command -v。例如:

COMPRESS_OPTION="$(command -v compress)"
[ $? != 0 ] && echo "compress not found" || echo "compress is $COMPRESS_OPTION"

如果您不想更改which腳本中的所有實例,請在開頭附近添加如下函式:

which() {
 local w status
 w="$(command -v "$1")"
 status=$?
 [ -n "$w" ] && echo "$w"
 return $status
}

引用自:https://unix.stackexchange.com/questions/425728