![~/ を使用する bash スクリプトにそのファイルやディレクトリがないと表示されますか? [コピー]](https://linux33.com/image/209759/~%2F%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%20bash%20%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AB%E3%81%9D%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%84%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%8C%E3%81%AA%E3%81%84%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8B%3F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
Bashスクリプトからアクセスしようとすると"~/"
機能しません。
例:touch "~/anything"
結果は次のとおりです。
touch: '~/anything' をタッチできません: そのファイルやディレクトリがありません
間違いがありましたか?スクリプトを実行するコマンドプロンプトでこれを実行できます。
答え1
~
Bashでは、二重引用符または一重引用符で囲んでもチルダは拡張されません。/home/user
スペースや特殊文字を説明するために引用符を使用する必要がある場合は、チルダやスラッシュを引用しないでください。たとえば、
touch ~/"that file"
touch ~/'this"quote'
以下も使用できます。
touch "$HOME/file with spaces"
答え2
引用符が問題なのですが、〜で引用符を使用すると、拡張せずにそのまま使用するようです。