【发布时间】:2020-11-30 22:07:38
【问题描述】:
我有一个别名,我希望能够使用exec 调用它,但我不确定如何使它工作。该示例已简化,但我认为足以突出该问题。将别名更改为函数也不起作用。直接调用别名/函数确实有效,只是在使用 exec 时无效。
我使用的命令是,
alias myalias="ls -lah /tmp"
exec myalias
但它失败了,类似于以下内容,
bash: exec: myalias: not found
难道不能使用 exec 来做到这一点吗?
【问题讨论】:
-
这不是别名,而是常规变量。您需要
$来扩展变量,例如"$myalias"。 mywiki.wooledge.org/BashFAQ/050 -
为什么要在上面使用
exec?像这样的命令似乎没有多大意义。 -
一般情况下,
exec需要一个可执行文件,在别名扩展或参数扩展之后可能会提供也可能不会提供。 -
对不起,原来的问题应该是使用别名。使用正确的 sn-p 更新。
-
执行某事意味着用不同的进程替换当前进程。因此,您只能执行一个可执行文件。别名和函数都不是可执行文件。如果你想开车时间表有点:你可以开车,你可以用时间表找到合适的公共汽车,但你不能开车。