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

しかし、環境変数の設定中にチルダ展開が機能するように、上記の 2 番目の例を修正する方法はありますか?

このようなことを試しましたが、問題全体は解決しませんでした。

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

他に何ができますか?

注: このソリューションは、どの POSIX シェルでも機能するはずです。

4

1 に答える 1

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
于 2016-02-02T16:45:34.247 に答える