私は bash スクリプトを作成しており、その中で堅牢なエラー チェックを実行したいと考えています。
失敗させるための終了ステータス コードはmv
、失敗を簡単にシミュレートできます。存在しないファイルを移動するだけで、失敗します。
ただし、mkdir
失敗をシミュレートしたい。mkdir は、さまざまな理由、ディスクの問題、または権限の欠如によって失敗する可能性がありますが、失敗をシミュレートする方法がわかりません。
私は bash スクリプトを作成しており、その中で堅牢なエラー チェックを実行したいと考えています。
失敗させるための終了ステータス コードはmv
、失敗を簡単にシミュレートできます。存在しないファイルを移動するだけで、失敗します。
ただし、mkdir
失敗をシミュレートしたい。mkdir は、さまざまな理由、ディスクの問題、または権限の欠如によって失敗する可能性がありますが、失敗をシミュレートする方法がわかりません。
使うだけ
mkdir your_directory/
if [ $? -ne 0 ] ; then
echo "fatal"
else
echo "success"
fi
where$?
は、最後に実行されたコマンドの終了コードを表します。
親ディレクトリを作成するには、これらが存在しない場合に実行しますmkdir -p parent_directory/your_directory/
ディレクトリが既に存在する場合 (-p を使用していない場合)、mkdir は失敗し、1
(私のシステムでは) エラー コードを返すため、最初にディレクトリを作成して、自分のシステムでこれをテストします。(ただし、これはすべてのシェルで標準であると思います。)
または、親ディレクトリを読み取り専用にします。
スクリプトで、新しいディレクトリにチェックを入れることもできます....
mkdir -p new_dir ;
if [ -d new_dir ]
cd new_dir && ...... anything else you want .
else
echo "error in directory creation ";
exit 2 ;
fi
あなたが怠惰な場合はset -e
、最初のスクリプトで十分です。多くの場合、エラーを出力して、何か問題が発生した場合に終了したいだけです。
まさにあなたが求めたものではありませんが、おそらくあなたが望んでいるものです。