![](/img/trans.png)
[英]How to create bash script to do/undo setting locale with one alias?
[英]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.