【发布时间】:2013-01-08 18:46:18
【问题描述】:
我有一个数组变量,它包含一个文件夹中的所有目录。 我需要 cd 到 $array 中的每个目录。 bt 当它到达一个不可访问的目录时,程序停止。我怎样才能避免这种情况,以便我的循环简单地转到下一个目录。代码是
foreach dir ($array)
cd $dir
echo "directory is $dir"
cd - end
请帮忙!!
【问题讨论】:
我有一个数组变量,它包含一个文件夹中的所有目录。 我需要 cd 到 $array 中的每个目录。 bt 当它到达一个不可访问的目录时,程序停止。我怎样才能避免这种情况,以便我的循环简单地转到下一个目录。代码是
foreach dir ($array)
cd $dir
echo "directory is $dir"
cd - end
请帮忙!!
【问题讨论】:
只需测试 cd 是否有效。
( if cd $dir 2> /dev/null; then
echo in directory $dir
# Do other things
fi )
另外,请注意括号。这些会导致整个子句在子 shell 中运行,因此无需 cd 回到原始位置。
【讨论】:
如果我没记错的话,你可以使用类似的东西
if [ -r ${dir} ]
then
echo "Have read access!"
fi
您可以使用-w 测试写入权限,使用-x 测试执行位。
【讨论】: