【发布时间】:2021-04-14 06:11:25
【问题描述】:
我有以下一组 shell 变量。
var0=000
var1=111
var2=222
var3=333
我想要另一个变量 var 由用户的 cli 参数 ($1) 确定
在执行期间指向上述变量之一(var0 to var3)。
CLI 参数以下列方式传递给脚本 ./script.sh 1
# === script.sh ===
k="$1"
var=var$k
echo $var
但是$var 在输出中是空的。
【问题讨论】:
-
请指定您的意思是 user input 使用
read或 positional arguments 派生,这些参数位于脚本的 cli 调用的末尾,即 @987654329 @ 在终端中。如果可能,分享整个脚本源代码。 -
由于
k设置为 1(在您的调用中),var的值为var1,并且 echo 语句应输出字符串 var1。我在您的代码中没有看到任何“用户输入选择”。 -
@user193442,用户输入在脚本cli调用的最后,比如./script.sh 0
-
这通常不称为用户输入,而是传递程序参数或传递程序参数,或者,正如kevinnls 所说,位置参数。如果你谈论用户输入,我们认为你想摆弄 /dev/tty,或者至少做一个
read命令或类似的东西。 -
我看不出 var 怎么可能是空的。即使
$k有问题,$var至少应该包含文字var可以分享一下你得到的输出吗?