繁体   English   中英

如何在源Bash脚本的功能中创建然后使用别名?

[英]How can one create and then use an alias in a function of a sourced Bash script?

我想在源Bash脚本的函数中创建然后使用别名。 我遇到了类似Inception的困难,并且希望能找到有关如何正确执行此操作的指点。

这是示例脚本来源:

#!/bin/bash

myFunction(){
    alias zappo="echo"
    zappo
}


有什么建议吗?

请注意,别名的脚本功能有限。 从《 高级Bash脚本指南》中

在脚本中,别名的用途非常有限。 如果别名可以承担C预处理器的某些功能(例如宏扩展),那将是很好的选择,但是不幸的是Bash不会在别名主体内扩展参数。 [2]此外,脚本无法在“复合结构”(例如if / then语句,循环和函数)中扩展别名本身。 另一个限制是别名将不会递归扩展。 几乎总是可以用函数更有效地完成别名。

我会为此使用一个变量:

myFunction(){
    zappo="echo"
    $zappo "foo bar"
}

甚至包装函数:

zappo() {
    if [ $1 = 'some value'] ; then
        do something
    fi

    # apply out arguments to echo
    echo $@
}

现在这样称呼它:

zappo log_info "foo bar"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM