シェルスクリプトでチルダを含む文字列をチルダ展開する
シェル上でチルダは自動的に展開されるが、文字列内のチルダは展開されない。
$ echo $HOME /home/fohte $ echo ~ /home/fohte $ echo "~" ~ $ echo '~' ~
これは eval
もしくは bash -c
によって解決できる。
$ eval 'echo ~' /home/fohte $ bash -c 'echo ~' /home/fohte
また、チルダに限らず変数やワイルドカード (*
, **
) も展開される。