スクリプトファイルのシステムエラーメッセージをミュートし、私のエラーメッセージを表示します。

スクリプトファイルのシステムエラーメッセージをミュートし、私のエラーメッセージを表示します。

現在の作業ディレクトリのサフィックスを含むすべてのファイルを指定.shされたディレクトリに移動する簡単なスクリプトを作成しました。

これらのファイルがない場合、スクリプトはシステムエラーメッセージではなく、私が入力したエラーメッセージのみを出力する必要があります。mv: cannot stat ‘*.sh’: No such file or directory

./shm 2> /dev/nullputコマンドの後に追加しようとしたので、mvスクリプトは無限に実行されました!

システムエラーメッセージを無音にする方法は?

#!/bin/bash

echo "Moving all script files to script directory..."
mv *.sh $HOME/linux/scripts
#./shm 2> /dev/null
if [ $? -ne 0 ]
 then
        echo "No files with .sh suffix"
fi

ベストアンサー1

私はこれがエラーメッセージを取り除く誤った方法だと思います。私のような場合は、確認に使用する方が良いです。

#!/bin/bash

if ls *.sh &> /dev/null
then
  echo "Moving all script files to script directory..."
  mv -v -n *.sh $HOME/linux/scripts
else
  echo "No files with .sh suffix -- nothing to move"
fi

おすすめ記事