Linux
bash, ’’ 在別名或函式中
我經常使用 Windows 和 Linux,有時我
cd\
從 Windows 肌肉記憶中輸入,所以我嘗試給它起別名,alias cd\='cd /'
但這不起作用(可能是因為\
它是 Linux 中的轉義字元)。有沒有辦法,使用我可以輸入cd\
=>的別名或函式cd /
?
這很難,因為反斜杠用於轉義下一個字元,並且在行尾,它開始一個續行。因此,即使您可以創建一個名為 的函式
cd\
,您也需要將其執行為cd\\
, 或'cd\'
. 使用別名,轉義或引用名稱的一部分可防止別名擴展……無論如何,您不能在 Bash 中創建這些別名或函式:
$ alias cd\\='echo foo' bash: alias: `cd\': invalid alias name $ cd\\ () { echo foo; } bash: `cd\\': not a valid identifier
不過,你可以在 Zsh 中,但你需要雙反斜杠……
% cd\\ () { echo foo; } % cd\\ foo
實際上它甚至似乎接受了別名,但你不能使用它:
% alias foo\\='echo bar' % foo\\ zsh: command not found: foo\ % 'foo\' zsh: command not found: foo\
Bash 可以執行名稱中帶有反斜杠的外部命令,但這對
cd
.