2015-02-10 36 views
0

這裏是我的教授希望我怎麼讀,第二個參數中> ./b.sh/NET/*

./b.sh/NET/*

 12 /net/aquota.user 
    15751 /net/slackware.iso 

這裏是我的代碼

#!/bin/bash 

for FILE in $1/* 
do 
    if test -f "${FILE}" 
    then 
    inode=$(stat -c %i ${FILE}) 
    echo $inode $FILE 
    fi 
done 

我知道如何以$ 1讀它時,它是/淨,但我的教授希望用戶鍵入/ NET/*,我應該怎麼改?

+4

'/淨/ *'將由外殼膨脹,轉動命令到'./b.sh /淨/ file1的/淨/ file2的/淨/ file3 etc ...' – 2015-02-10 21:09:53

+0

爲了擴展Marc的評論,你想遍歷所有位置參數。或者,將所有參數傳遞給'stat'。 – 2015-02-10 21:26:16

回答

0

在您的腳本運行之前,shell會擴展net/*,因此您將獲得多個參數,並且只需循環它們即可。

#!/bin/bash 

for FILE; do    # or for FILE in "[email protected]"; do 
    if test -f "${FILE}"  # not really necessary or useful 
    then 
    inode=$(stat -c %i "${FILE}") 
    echo "$inode" "$FILE" # not really necessary or useful 
    fi 
done 

或更簡潔地

stat -c '%i %n' "[email protected]" 
相關問題