我试图在我编写的shell脚本中使用别名,但它无效。
别名:
alias ts="awk '{ print strftime(\"[%Y-%m-%d %H:%M:%S]\"), \$0 }'"
当我运行脚本时,出现以下错误:
./copyTask.sh: ts: not found
在互联网上徘徊,似乎我需要启用expand_aliases
shell选项,但我没有安装shopt
...有什么方法可以启用别名不使用shopt
或创建另一个rootfs图像进行扩展?
我正在使用ash
shell。 awk
是BusyBox v1.25.0 awk
。
注意:别名是将时间戳添加到命令的简单方法:
$ echo "foo" | ts
[2005-06-23 11:52:32] foo
编辑:由于有些人无法理解我的意思,this answer有一个例子。
答案 0 :(得分:2)
不要在脚本中使用别名。一个函数完成相同的工作更好。
ts() { gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }' "$@"; }
export -f ts
将使ts
命令可用于子进程(它们运行的shell也是bash)。