我的代碼是:僅在bash腳本中檢查可執行文件時計算文件夾和可執行文件?
function CountEx()
{
echo "The number of executable files in this dir is: $count"
}
while
我使用這樣的:
yaser.sh -x ./folder
的輸出The number of files + folders
。
我的代碼是:僅在bash腳本中檢查可執行文件時計算文件夾和可執行文件?
function CountEx()
{
echo "The number of executable files in this dir is: $count"
}
while
我使用這樣的:
yaser.sh -x ./folder
的輸出The number of files + folders
。
文件夾上的可執行文件位具有特殊含義,最常設置。嘗試篩選具有可執行位的常規文件:
if [[ -f "$file" -a -x "$file" ]];
當然,整個演習可能被find
被簡化:
find $folder -maxdepth 1 -type f -executable -ls | wc -l
我不認爲'find'的所有版本都有'-executable'標誌。你可以使用'-perm + 111'作爲替代。 – 2013-02-12 14:39:13
非常感謝這個最有用的:) – 2013-02-12 17:56:37
可能在你的目錄中的所有文件都設置爲可執行權限。如果你只想檢查elf文件,那麼使用file命令和grep for elf。
file $file | grep elf > /dev/null
if [ $? -eq. 0 ] ; then
count = `expr $count + 1`
fi
我是否正確地告訴你,你想只使用shell腳本在目錄中查找可執行文件?你爲什麼不想用'find'? – nemo 2013-02-12 14:34:10
在'bash'中,有幾種方法可以在不使用外部程序'expr'的情況下遞增一個值;最簡潔的是'((count + = 1))'。與你現有的代碼最相似的是'count = $((count + 1))'。 – chepner 2013-02-12 14:37:42