次の行を含むシェルスクリプトがあります
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`
それにもかかわらず、画面にエラーが表示されます。
答え1
それを使用しないで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
}