为了调试我的脚本,我想在每个输出的开头添加内部变量$ FUNCNAME和$ LINENO,所以我知道输出发生在哪个函数和行号上.
foo(){
local bar="something"
echo "$FUNCNAME $LINENO: I just set bar to $bar"
}
Run Code Online (Sandbox Code Playgroud)
但是由于会有很多调试输出,如果我可以执行以下操作,它会更清晰:
foo(){
local trace='$FUNCNAME $LINENO'
local bar="something"
echo "$trace: I just set bar to $bar"
}
Run Code Online (Sandbox Code Playgroud)
但上面的字面输出:"$ FUNCNAME $ LINENO:我只是设置了一些东西"我认为这样做是因为双引号只扩展了一次内部的变量.
是否有一种语法上干净的方法在同一行中扩展变量两次?
linux bash parameter-passing variable-expansion parameter-expansion