我正在尝试为目录中的可执行文件添加别名,其中包含空格。例如:
alias myfile="/home/ben/test case/myfile"
现在,这并没有按照我想要的方式扩展(它认为/home/ben/test
是可执行文件)。在 bash 中你可以添加额外的引号:
alias myfile="'/home/ben/test case/myfile'"
遗憾的是,这在鱼类中不起作用。我该怎么办?
答案1
答案2
本回答是从评论区迁移来的。
鱼alias
只是天真功能为了熟悉使用这个名称(并通过eval
)创建函数,并且发现它有错误也就不足为奇了。我认为你最好学习如何编写鱼函数。
对于给定的示例,它被转换为以下行eval
:
function myfile --wraps /home/ben/test; /home/ben/test case/myfile $argv; end
因此,使用alias myfile="'/home/ben/test case/myfile'"
也无济于事,因为它会给出一些愚蠢的输出,例如--wraps 'home/ben/test; '/home/ben/test case/myfile'
(看看那个孤独的单引号!)
所以自己写一个函数,你会发现fish就是这么废话,破坏了交互的乐趣和友好性:
function myfile --wraps '/home/ben/test case/myfile'; '/home/ben/test case/myfile' $argv; end
请注意,我还没有真正测试过这一点,并且只有在我正确理解语法的情况下它才有效。
事实上,f??????-id??tic-shell
当我第一次读完它的内置函数时,我在 40 分钟内就已经受够了。