Shell:同时打印变量名称和值

  • 本文关键字:变量名 打印 Shell shell
  • 更新时间 :
  • 英文 :


假设我有一个名为superEcho的函数。我希望它同时打印变量名及其值。

#!/bin/bash

function superEcho() {
echo "${v_day}"
echo '${v_day}'
}
v_day=20220101
superEcho ${v_day}
# output
# 20220101
# ${v_day}

从上面的代码中,我可以很容易地得到参数名称"{v_day}";及其价值。但是,如果我更改了变量的名称,该怎么办?例如:

v_last_day=20211231
superEcho ${v_last_day}

这个功能将不再工作。我可以更改它以适应任何变量名称吗?

附言:这是一个包装函数,它不会要求用户更改他们的代码。例如,不能将变量名作为参数传递:

superEcho "${v_day}" '${v_day}'

Bash支持使用${!parameter}进行间接参数扩展,您可以将其与变量的名称一起使用:

#!/bin/bash
superEcho() { 
echo "$1 = ${!1}"
}
v_day=20220101
superEcho v_day

(请注意,您的superEcho版本不使用传递的参数,但在任何情况下都会打印v_day。(

相关内容

  • 没有找到相关文章

最新更新