字符串的别名替换以在终端命令中使用它

Ste*_*cob 5 bash alias

有没有办法替换别名,以便将其附加到或预先添加到 shell 中的现有命令?

例如,定义别名:

alias execloc='/home/user/'
Run Code Online (Sandbox Code Playgroud)

将此添加到 bash 终端中的命令中:

cd exeloc/temp/somefolder
Run Code Online (Sandbox Code Playgroud)

可以做这样的事情,还是有办法做到这一点?

Rad*_*anu 6

你不能这样做,因为这/home/user/不是命令。它更像是静态字符串。

来自man bash(第 1984 行某处):

当单词用作简单命令的第一个单词时,别名允许用字符串替换该单词 。

就您而言,execloc永远不会是简单命令的第一个单词。

但是,execloc您可以将其定义为环境变量,而不是定义为别名:

export execloc='/home/user/'
Run Code Online (Sandbox Code Playgroud)

然后你可以在任何你想要的地方使用它,如下所示:

cd $exeloc/temp/somefolder
Run Code Online (Sandbox Code Playgroud)