fohte.log

https://fohte.net に移行しました

シェルスクリプトでチルダを含む文字列をチルダ展開する

シェル上でチルダは自動的に展開されるが、文字列内のチルダは展開されない。

$ echo $HOME
/home/fohte

$ echo ~
/home/fohte

$ echo "~"
~

$ echo '~'
~

これは eval もしくは bash -c によって解決できる。

$ eval 'echo ~'
/home/fohte

$ bash -c 'echo ~'
/home/fohte

また、チルダに限らず変数やワイルドカード (*, **) も展開される。

参考