2013-02-05 84 views
0

我想通過使用命令行參數列出來自任意數量目錄的文件。 我試圖通過命令行傳遞目錄路徑並顯示搜索目錄中的文件。像這樣的東西。 「目錄:PATH1」 文件 文件 文件通過傳遞命令行參數從目錄列出文件

「目錄:PATH2」 文件 文件

所以我用$ *傳遞所有的命令行參數,但它只顯示第一個列出的目錄中的文件。

#!/bin/bash 


cd $* 
for filename in * 
do 
     echo "Directory: $*" 
     echo $filename 
done 

回答

0

類似的東西來這應該工作:

dirs=$* 
for dir in $dirs 
do 
    echo "Directory: $dir" 
    for filename in $(ls $dir) 
    do 
     echo $filename 
    done 
done 
+0

我試過你的腳本和輸出的空!那是什麼? – Satish

+0

首先我試圖複製你的腳本,但它給了我語法錯誤:「做」意外(期待「完成」) – Tomala

+0

對不起,這是我的錯誤,複製腳本:) – Tomala

2

萬一你有一個目錄名稱的空間,你可能需要使用「$ @」,並且它不傷害檢查該目錄存在:

for dir in "[email protected]" ; do 
    if [ -d "$dir" ] ; then 
     echo "Directory: $dir" 
     ls "$dir" # If all you want is to show the contents, this should do 
    else 
     echo "Not a directory: $dir" 
    fi 
    done 
相關問題