Bash
讀取連結文字與變數
使用 BASH:答案可能很明顯,但對我來說不是。
> echo $PWD /root/fcm > readlink -f ~ /root > # but then with a variable or literal > a='~' > readlink -f $a /root/fcm/~ > readlink -f "~" /root/fcm/~
我希望只收到’/root/’;
誰在做替換 bash 或 readlink?
外殼進行波浪擴展。
readlink
沒有。Bash 不會在引號內擴展波浪號。
readlink -f $a
不會做你想要的,因為波浪號擴展發生在變數擴展之前,即變數擴展為~
,但波浪號不會進一步擴展。Bash 做事的順序是:大括號擴展、波浪號擴展、參數和變數擴展、命令替換、算術擴展、分詞和路徑名擴展。
在某些情況下,使用
$HOME
波浪號可能比使用波浪號更可取,因為它的行為與任何其他變數一樣。另外,請不要以root身份登錄…