2013-07-20 26 views
1

我有這樣的腳本:減少包含空格的變量的雙引號?

file="results/semester1 (2013).csv" 
if [ -f "$file" ]; then 
    echo 'File exists.' 

    # do more stuff with $file 
fi 

我希望做更多的東西與$file if塊內,如發行mvcpln等,但我發現,每次我通過$file對於這些Unix命令,我必須用雙引號括起來處理文件名中的空格,否則會出錯。正如你在if條件中看到的,我已經做過一次了。

是否有任何方法只是雙引號「一勞永逸」,所以我不必每次都這麼做?

+0

不是非常實際的答案,但切換到'zsh'。它在默認情況下不對參數擴展執行分詞,因此您可以放心地將它們不加引號。 – chepner

回答

2

不是我知道的,沒有。只要您希望將其作爲單個值進行處理,就需要引用該變量。

對於特別的測試,您可以避免使用雙括號進行引用。然後分詞不會發生。但是這並不能爲您節省任何打字費用。

if [[ -f $file ]] ; then 
    ... 
fi 
4

有什麼辦法只是雙引號「一勞永逸」,所以我不必每次都這麼做嗎?

號您必須雙引號使用一個變量(特殊情況除外,見墊的答案),這可能會包含空格。沒有辦法繞過它。

這是不尋常的,有點煩人,但你很快就習慣了。

相關問題