2014-04-04 19 views
0
#!/bin/sh 

LOCATION=$1 

if [ "$#" -ne "1" ] 
then 
echo "Usage: test1 <directory_name>" 

else 
echo "Number of directories:` find -type d | wc -l `" 
echo "Number of files: ` find -type f | wc -l`" 
echo "Number of readable:` find -perm -g+r | wc -l`" 
echo "Number of writable:` find -perm -g+w | wc -l`" 
echo "Number of executable:` find -perm -g+x | wc -l`" 
fi 

這段代碼有什麼問題嗎?當我輸入時,我希望它顯示所有目錄,文件可讀,可寫和可執行文件./test1顯示所有目錄和文件,也可讀可寫和可執行

+0

什麼是你的問題實際上是什麼?你的代碼是否工作?任何應該有所不同?你爲什麼不說出你的問題?你得到什麼輸出_do_? – arkascha

+0

數量的目錄:1支 文件數:可讀5 數量:6 寫數:0 可執行文件的數量:1 對不起那是放出來的,可寫的數量始終爲0,不知道是什麼是錯的。 – user2786596

回答

0

您需要在find命令中添加LOCATION。如果您沒有給出任何值,那麼它將開始從當前目錄中以遞歸方式查找文件。

您的腳本應該是這樣的,

#!/bin/bash 
LOCATION=$1 

if [ "$#" -ne "1" ] 
then 
    echo "Usage: test1 <directory_name>"  
else 
    echo "Number of directories: $(find $LOCATION -type d | wc -l)" 
    echo "Number of files: $(find $LOCATION -type f | wc -l)" 
    echo "Number of readable:$(find $LOCATION -perm -g+r | wc -l)" 
    echo "Number of writable: $(find $LOCATION -perm -g+w | wc -l)" 
    echo "Number of executable: $(find $LOCATION -perm -g+x | wc -l)" 
fi 
相關問題