2012-08-28 21 views
0

我正在寫一個bash腳本,它會將.tgz文件輸出到特定目錄/ tmp /默認 我想提供一個選項來覆蓋此目錄,而我選擇了這樣做是使用命令行Bash腳本參數,要求或填寫特定字符

while getopts d: option 
    do 
    case "${option}" in 
    d) dir=${OPTARG};; 
    esac 
    done 

書面,這個工程提供的參數,但我碰到的根據用戶輸入的障礙 我.tgz的文件的文件名也是一個變量,我將此全部結合在一起的代碼是

output="$dir""$name" 

,我遇到的問題是如果用戶運行

./script -d /home/user 

我得到的路徑和文件名最終成爲

/home/userfilename.tgz 

我需要或者強制的要求爲一個尾隨/或如果插入一個用戶沒有。 雖然它的工作原理,如果我在我的輸出變量更改爲

output="$dir"/"$name" 

如果用戶沒有提供一個尾隨/我結束了這樣的事情,我試圖讓我的輸出美感。

/home/user//filename.tgz 

任何輸入將不勝感激。

回答

0

添加行

output="${output//\/\///}" 

加入dirname後。

它看起來很複雜,但它所做的是將兩個斜槓替換爲一個。

您可能會發現在here更多的信息。

+0

絕對完美,謝謝! – user1629011

+0

@ user1629011不要忘記單擊複選標記以接受此答案:) – sjngm

+0

完成,必須等待2分鐘 – user1629011