6

私は bash スクリプトを作成しており、その中で堅牢なエラー チェックを実行したいと考えています。

失敗させるための終了ステータス コードはmv、失敗を簡単にシミュレートできます。存在しないファイルを移動するだけで、失敗します。

ただし、mkdir失敗をシミュレートしたい。mkdir は、さまざまな理由、ディスクの問題、または権限の欠如によって失敗する可能性がありますが、失敗をシミュレートする方法がわかりません。

4

5 に答える 5

10

使うだけ

mkdir your_directory/
if [ $? -ne 0 ] ; then
    echo "fatal"
else
    echo "success"
fi

where$?は、最後に実行されたコマンドの終了コードを表します。

親ディレクトリを作成するには、これらが存在しない場合に実行しますmkdir -p parent_directory/your_directory/

于 2013-05-19T09:19:36.207 に答える
5

ディレクトリが既に存在する場合 (-p を使用していない場合)、mkdir は失敗し、1(私のシステムでは) エラー コードを返すため、最初にディレクトリを作成して、自分のシステムでこれをテストします。(ただし、これはすべてのシェルで標準であると思います。)

または、親ディレクトリを読み取り専用にします。

于 2013-05-19T09:19:32.270 に答える
3

スクリプトで、新しいディレクトリにチェックを入れることもできます....

mkdir -p new_dir ;

if [ -d new_dir ]
  cd new_dir && ...... anything else you want .
else 
  echo "error in directory creation ";
  exit 2 ;
fi 
于 2013-05-19T10:25:13.023 に答える
1

あなたが怠惰な場合はset -e、最初のスクリプトで十分です。多くの場合、エラーを出力して、何か問題が発生した場合に終了したいだけです。

まさにあなたが求めたものではありませんが、おそらくあなたが望んでいるものです。

于 2013-05-19T20:36:40.163 に答える