1

フォルダ内のすべてのディレクトリを含む配列変数があります。$arrayの各ディレクトリにcdする必要があります。アクセスできないディレクトリに到達すると、プログラムは停止します。これを回避して、ループが単に次のディレクトリに移動するようにするにはどうすればよいですか。コードは

foreach dir ($array) 
  cd $dir
  echo "directory is $dir" 
cd - end

助けてください !!

4

2 に答える 2

6

CDが機能することをテストするだけです。

( if cd $dir 2> /dev/null; then
   echo in directory $dir
   # Do other things
fi )

また、括弧に注意してください。これらにより、句全体がサブシェルで実行されるため、元の場所にcdで戻す必要はありません。

于 2013-01-08T18:49:17.643 に答える
0

iamが間違っていない場合は、次のようなものを使用できます

if [ -r ${dir} ]
then
  echo "Have read access!"
fi

-w書き込みアクセス-xのテストと実行ビットのテストに使用できます。

于 2013-01-08T18:50:22.907 に答える