![Linuxホーム領域でファイルを作成する:この[複製]に触れることはできません。](https://linux33.com/image/198762/Linux%E3%83%9B%E3%83%BC%E3%83%A0%E9%A0%98%E5%9F%9F%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%EF%BC%9A%E3%81%93%E3%81%AE%5B%E8%A4%87%E8%A3%BD%5D%E3%81%AB%E8%A7%A6%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AF%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82.png)
私のホーム領域にまだ存在していないファイルにテキストを書きたいです。生成するファイル名を変数に保存しておきました。echo
一部のテキストにこの変数を使用し、それをファイルにリダイレクトしたいと思います。まずファイルを作成します。しかし、うまくいきません。
$ foo="~/bar"
$ echo "nonsense" > "$foo"
$ bash: ~/bar: No such file or directory
ただし、別のディレクトリを使用すると(そのディレクトリが存在する限り)、うまく機能します。
$ foo="moo/bar"
$ echo "nonsense" > "$foo"
私は少なくとも使用できると思いましたが、touch
それも機能しません。
$ foo="~/bar"
$ touch "$foo"
変数に保存されたファイル名を使用してホーム領域にファイルを生成するために必要な秘密は何ですか?
答え1
$HOME変数を使用してください。
$ foo="$HOME/bar"
$ touch "$foo"