如何避免cd到没有访问权限的目录

时间:2013-01-08 18:46:18

标签: linux bash unix csh

我有一个数组变量,它包含文件夹中的所有目录。  我需要cd到$ array中的每个目录。当它到达不可访问的目录时,程序停止。如何避免这种情况,以便我的循环只是转到下一个目录。代码是

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

请帮助!!

2 个答案:

答案 0 :(得分:6)

只是测试光盘是否正常工作。

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

另外,请注意括号。这会导致整个子句在子shell中运行,因此无需cd回原始位置。

答案 1 :(得分:0)

如果我没弄错的话,你可以使用像

这样的东西
if [ -r ${dir} ]
then
  echo "Have read access!"
fi

您可以使用-w来测试写访问权,使用-x来测试执行位。