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

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

例如,定义别名:

alias execloc='/home/user/' 

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

 cd exeloc/temp/somefolder 

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

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

来自man bash (某处1984年的某处):

别名允许在将字符串用作简单命令的第一个字时替换字符串。

在您的情况下, execloc永远不会是简单命令的第一个单词。

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

 export execloc='/home/user/' 

然后你可以随意使用它,如下所示:

 cd $exeloc /temp/somefolder 

bash / dash我不这么认为 ,但我错了。 我想有可能使用’zsh’(alias -g foo =’bar’)。

但还有其他一些可能性。

如果您只是想要更方便的’cd’命令,可以使用CDPATH(google it)。 或者使用符号链接或硬链接(man ln)。

或修改/创建〜/ .inputrc,如下所示:

Control-f:“grep -r -i。\ e [D \ e [D \ e [D”

这为我输入了一个grep命令,然后在dot之前退格,这样我就可以输入ctrl-f然后输入我正在搜索的单词。

您可以这样做(如果我正确地阅读了您的问题),如下所示:

export EXECLOG = / home / user

cd $ EXECLOG / temp / somefolder

基本上在shell中设置你的替换并通过在前面添加“$”符号来访问它们。 标准shell变量。

(退出以解决EXECLOG中的拼写错误)