我想调用一个别名,exec
但不确定如何使它起作用。该示例已简化,但我认为足以突出该问题。将别名更改为函数也不起作用。直接调用别名/函数确实有效,只是在使用exec时无效。
我正在使用的命令是,
alias myalias="ls -lah /tmp"
exec myalias
但是它失败了,类似于以下内容,
bash: exec: myalias: not found
难道无法使用exec执行此操作?
你的示例中没有任何函数或别名,但是如果你确实有别名,则可以使用别名exec
本身来执行它:
#!/bin/bash -i
# Define an alias
alias myalias="ls -lah /tmp"
# Allow `exec` to work for aliases
alias exec='exec '
# This now works as expected
exec myalias
这是man bash
它起作用的原因:
别名允许将字符串替换为简单命令的第一个单词时使用该单词。[...]如果别名值的最后一个字符为空,则还将检查别名后面的下一个命令字以进行别名扩展。