在 Bash 中通过单个命令回显多个变量

Echo multiple variables via single command in Bash

我想将单个变量 $my_<1 to 3>_web 写入终端,而不必手动写入 echo $my_1_webecho $my_2_webecho $my_3_web 等脚本。

向终端手动键入命令(或将命令写入脚本)的示例。

my_1_web="some value1"
my_3_web="some value2"
my_2_web="some value3"
echo "web at $my_1_web
$my_2_web
$my_3_web"

这样可以吗?如果是这样,我很想得到答案。

my_1_web="some value1"
my_3_web="some value2"
my_2_web="some value3"
echo "web at $my_1-3_web"

我正在学习 bash 并且我是 GNU / Linux 社区的新成员。如果某处发生类似情况,我深表歉意...

使用数组而不是编号变量可能更容易:

my_web=(
    "some value1"
    "some value2"
    "some value3"
    )

然后打印你想要的:

(IFS=$'\n'; echo "web at ${my_web[*]:0:3}")

这会暂时将“内部字段分隔符”设置为换行符,这样当我们连接数组元素 (my_web[*]) 时,它会在换行符上连接它们。我还明确选择了前三个元素,但在这种情况下您实际上不需要这样做,因为这些是唯一存在的元素。

请注意,Bash 数组是从 0 开始索引的。

感谢 Glenn Jackman's now-deleted answer 启发了这个 echo 命令。