如何为一系列命令创建别名?

sas*_*shi 3 shell alias

我知道一个命令,但如何处理序列?

UVV*_*UVV 8

我把它作为答案,因为无法在评论中正确格式化

foo() {
   echo foo
   echo bar
}

> foo
foo
bar
Run Code Online (Sandbox Code Playgroud)

恕我直言,使用函数比使用别名有更多的自由。至少你可以正确格式化它。

高级 Bash 脚本指南

在脚本中,别名的用处非常有限。如果别名可以承担 C 预处理器的某些功能(例如宏扩展),那就太好了,但不幸的是,Bash 不会在别名主体内扩展参数。[2] 此外,脚本无法在“复合结构”中扩展别名本身,例如 if/then 语句、循环和函数。一个额外的限制是别名不会递归扩展。几乎无一例外,我们希望别名做的任何事情都可以通过函数更有效地完成。

  • @KasiyA:函数如何不如别名灵活?通常,函数_远_比别名更灵活。例如,一个函数可以接受参数。别名适用于简单的事情,但除此之外,上面引用的 Bash man 的最后一句话也适用。当然,这个问题是关于别名的,要完整,UVV 应该已经展示了如何使用别名来做到这一点,然后在 Bash man 引用的支持下给出基于函数的答案。 (3认同)

Hau*_*ing 6

start cmd:> alias foo="echo foo; echo bar"
start cmd:> foo
foo
bar
Run Code Online (Sandbox Code Playgroud)

  • 可能比 `alias foo='{ echo foo; 更好 回声条;}` 或者作为一个函数甚至更好(以避免在运行 `foo bar` 时造成混淆),否则在执行 `cmd || 时你会得到令人惊讶的结果 foo` 或 `foo | 例如 bar` 或 `foo > file`。 (4认同)

归档时间:

查看次数:

2345 次

最近记录:

10 年,9 月 前