壳牌别名会取消空间



创建包含空间的二进制工具的别名时正确取消。

$PATH中可以查看二进制。我从zsh 4.3.11和bash 3.2.48运行了这一点,均为相同的结果。

二进制路径

~/Test Folder/fooBinary

别名

alias foo="`which fooBinary`"

这导致

foo='~/Test Folder/fooBinary'

现在称此别名导致

[shell]: no such file or directory: ~/Test

这曾经用来从别名中逃脱间距,我没有费心检查我的旧壳的版本,否则我会找到它。

我确实逃脱了间距:

alias foo="'`which fooBinary`'"

我的问题:

为什么在引用的别名中评估空间?
有更好的方法可以逃脱which

别名始终在空间上分裂。这是故意的和有用的,因为它允许您别名争论,例如alias rm='rm -i'alias commit='git commit -a'

如果您需要以编程方式引用参数,则可以使用printf %q添加一个逃逸级别:

alias foo="$(printf %q "$(which fooBinary)")"

相关内容

  • 没有找到相关文章