2013-01-08 36 views
1

我有一個數組變量,它包含文件夾中的所有目錄。 我需要cd到$數組中的每個目錄。 bt當它到達一個不可訪問的目錄時,程序暫停。我該如何避免這種情況,以便我的循環轉到下一個目錄。代碼是如何避免cd到沒有訪問權限的目錄

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

請幫忙!!

回答

6

只要測試cd的工作。

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

另外,請注意括號。這些會導致整個子句在子shell中運行,因此不需要將其恢復到原始位置。

0

如果IAM沒有搞錯,你可以使用類似

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

可以使用-w測試寫入訪問和-x用於測試的exceution位。

+0

只有當文件的所有者具有讀取權限但是我想檢查其是否具有組讀取權限時,纔會回顯消息。這怎麼能做到? –

相關問題