変数を使用するにはどうすればよいですか-$BASE
私のCDで。次のことを試しましたが、エラーが発生します
$ cd ~/z/repo_1_Ruby_193/
23:23:57 durrantm Castle2012 /home/durrantm/z/repo_1_Ruby_193
$ BASE="~/z"
23:24:03 durrantm Castle2012 /home/durrantm/z/repo_1_Ruby_193
$ cd $BASE/repo_1_Ruby_193
-bash: cd: ~/z/repo_1_Ruby_193: No such file or directory
23:24:25 durrantm Castle2012 /home/durrantm/z/repo_1_Ruby_193
cd ~/z/
では、 チルダ拡張 を使用して~
をホームディレクトリに展開しています。 BASE="~/z"
では、~
文字を引用したためではないため、展開されません。そのため、~
ディレクトリが存在しないことを訴えるメッセージが表示されます。解決策は、拡張を発生させるために、引用しないことです。つまり、BASE=~/z
です。
@ jw013は有効な説明と解決策を提供しています。
ただし、パスを引用したい場合もあります。複数のスペースまたは特別な記号が含まれている場合。この場合、$HOME
の代わりに~
を使用する必要があります。つまり、BASE="~/z"
はBASE="$HOME/z"
になり、正しく機能します。これは、パラメータの置換がチルダ展開とは異なり、二重引用符で解釈されるためです。