2014-04-02 154 views
-4
#!/bin/bash 

LOCATION=$1 
FILECOUNT=0 
DIRCOUNT=0 

if [ "$#" -lt "1" ] 
then 
echo "Usage: ./test2.sh <directory>" 
exit 0 
fi 

我沒有真正得到什麼,如果聲明說,任何人都可以幫我解釋一下嗎?謝謝

+3

http://tldp.org/LDP/abs/html/internalvariables.html#POSPARAMREF – DCoder

+0

傳遞給腳本的第一個參數。 – devnull

回答

3

$1指的bash文件的第一個參數。在這種情況下,您可以通過發出以下命令將您的目錄路徑:

# ./test2.sh /path/of/your/directory

#!/bin/bash 

LOCATION=$1 #first argument of the script 
FILECOUNT=0 
DIRCOUNT=0 

if [ "$#" -lt "1" ] #if the number of argument(s) ($#) is less than 1 
then 
echo "Usage: ./test2.sh <directory>" 
exit 0 
fi 

可以爲有關參數傳遞更多信息,請閱讀this article。 希望它有幫助。

+0

感謝您的幫助,但是我仍然不清楚這個,小於1是什麼意思?也許我應該告訴你我從哪裏得到這個http://stackoverflow.com/questions/13727069/count-files-and-directories-using-shell-script – user2786596

+0

這只是檢查是否有一個參數。 – Mathew

+0

@ user3488212馬修是對的。如果沒有參數,參數的個數將爲零。 – Dale

1

$1是傳遞給bash腳本的第一個參數。如果您開始使用./test2.sh argument1 argument2這樣的腳本,則$1將引用argument1

if語句會檢查參數的個數(即$#)是否小於1,那麼它將輸出使用語句(因爲您似乎無法在沒有任何參數的情況下運行腳本)。