bash,别名或函数中的“\”

bash,别名或函数中的“\”

我经常使用 Windows 和 Linux,有时我会cd\根据 Windows 的肌肉记忆进行输入,因此我尝试为其添加别名,alias cd\='cd /'但这不起作用(可能是因为\它是 Linux 中的转义字符)。有没有办法使用别名或函数来输入cd\=> cd /

答案1

这很难,因为反斜杠用于转义下一个字符,并且在行尾,它开始一个连续行。因此,即使您可以创建一个名为 的函数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.

相关内容