我試圖使用shell腳本獲取目錄的內容。使用shell腳本讀取目錄的內容
我的腳本是:
for entry in `ls`; do
echo $entry
done
然而,我的當前目錄包含在其名稱中的空格許多文件。在這種情況下,該腳本失敗。
在shell腳本中循環目錄內容的正確方法是什麼? PS:我使用bash。
我試圖使用shell腳本獲取目錄的內容。使用shell腳本讀取目錄的內容
我的腳本是:
for entry in `ls`; do
echo $entry
done
然而,我的當前目錄包含在其名稱中的空格許多文件。在這種情況下,該腳本失敗。
在shell腳本中循環目錄內容的正確方法是什麼? PS:我使用bash。
for entry in *
do
echo "$entry"
done
+1是正確的,比我快! :-P – Buggabill 2010-03-12 19:53:07
也許你應該使用'進入*。*'? – 2010-03-12 19:53:27
@Jonathan:如果你需要匹配以'。'開頭的文件,那麼你最好在twiddling'dotglob'選項。 – 2010-03-12 19:56:14
在for循環中不使用ls
解析目錄內容。你會遇到空白問題。使用外殼擴展代替
for file in *
do
if [ -f "$file" ];then
echo "$file"
fi
done
更新了問題.. – jrharshath 2010-03-13 05:36:04
這是bash語法。試試看看。記住變量的雙引號。這將保留空格。只是不要在'for循環中使用'ls' – ghostdog74 2010-03-13 06:17:52
非常相關的問題:http://stackoverflow.com/questions/2437452 – jrharshath 2010-03-13 06:11:59