定义引用其他别名的别名

Pen*_*ica 8 unix linux bash shell

对于我正在处理的项目,我需要能够在Debian shell中定义包含其他别名的别名.

让我们看一个代码示例,以使事情更清晰.

  1. alias foo=foo
  2. alias bar=bar

如果我运行type foo它返回foo is aliased to 'foo',并type bar返回bar is aliased to 'bar'.到此为止一切都很好.现在,我遇到了问题.

  1. alias foobar=$foo$bar

不行.type foobar回报foobar is aliased to ''.

我已经尝试过alias foobar=${foo}${bar}它也不起作用.

一旦我开始工作,在最终版本中我实际上需要两个别名之间的一些文本,想象如下:alias fooandbar=${foo}and${bar}.

有人可以帮忙吗?

anu*_*ava 14

要在另一个别名中重用别名,请使用:

foobar='foo;bar'
Run Code Online (Sandbox Code Playgroud)

但是我建议你考虑使用shell函数来更好地控制它.


gle*_*man 6

遵循@anubhava 的明智建议:

foo() { echo foo; }
bar() { echo bar; }
foobar() { echo "$(foo)$(bar)"; }
fooandbar() { echo "$(foo)and$(bar)"; }
Run Code Online (Sandbox Code Playgroud)

里面{}需要空格和分号。