2016-02-02 25 views
0

以下波浪擴展符合預期。如何爲在環境變量中設置的多個路徑執行代字號擴展?

$ A=~/foo.txt 
$ echo $A 
/home/lone/foo.txt 

在以下情況下,由於波浪線位於引號內,因此波浪線擴展不起作用。

$ A="~/foo.txt ~/bar.txt" 
$ echo $A 
~/foo.txt ~/bar.txt 

我知道我能做到,因爲環境變量引號內展開,而不是下面。

$ A="$HOME/foo.txt $HOME/bar.txt" 
$ echo $A 
/home/lone/foo.txt /home/lone/bar.txt 

但有一個方法來解決的上方,使得在設置的環境變量的波浪線擴展工作的第二個例子?

我試過這樣的東西,但它並沒有解決整個問題。

$ A=~/foo.txt" "~/bar.txt 
$ echo $A 
/home/lone/foo.txt ~/bar.txt 

我還能做什麼?

注意:該解決方案適用於任何POSIX shell。

回答

0

試試這個:

eval echo $A 

輸出:

$ A="~/foo.txt ~/bar.txt" 
$ echo $A 
~/foo.txt ~/bar.txt 
$ eval echo $A 
/home/oracle/foo.txt /home/oracle/bar.txt 
相關問題