0

bash で変数からパスを取得できません。どのように修正しますか?例えば:

my@PC:~$ a="~/.bashrc"
my@PC:~$ cat $a
cat: ~/.bashrc: No such file or directory

うまくいきませんでしたが、

cat .bashrc

cat ".bashrc"

うまくいきます。


これがフェドルキからの正解です

cat $(eval echo $a)
4

1 に答える 1

3

この問題の理由は、チルダがシェルによってホーム ディレクトリに展開されるためです。変数に格納すると、チルダは展開されず、 cat はフォルダー ~ (ホームディレクトリではなく) でファイル .bashrc を探します。

この問題を回避する方法は 2 つあります。提案された eval と $HOME の使用です。

a="$HOME/.bashrc"
于 2013-07-25T16:05:05.160 に答える