小编Bad*_*ten的帖子

在Bash中,有没有办法用双引号扩展变量两次?

为了调试我的脚本,我想在每个输出的开头添加内部变量$ 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

3
推荐指数
1
解决办法
411
查看次数