【问题标题】:Define a variable and input at the same time?同时定义一个变量和输入?
【发布时间】:2015-03-13 20:52:21
【问题描述】:

请原谅这个令人困惑的问题。不知道具体怎么表达?

我需要定义一个变量:

variable = "Description$count"

同时使用它作为输入.. 如果这有意义吗?: --inputbox "$(Description$count)

for ((count=$(ovftool vco.ovf | grep -i -A 60 Properties: | grep Description: | wc -l); count > -1; count--))
do

        declare "DiagRes$Count"=$(whiptail --inputbox "$(Description$count)" 8 110 --title "$Label1" 3>&1 1>&2 2>&3)
done

非常感谢任何帮助

【问题讨论】:

  • 你的问题很不清楚。你能稍微澄清一下吗?您想以何种方式“将其用作输入”?你能写一个非常简短的例子,不包括周围的其他代码,你期望变量开始是什么,你期望最终是什么?
  • 嗨,Brian,感谢您的关注,对于这个模棱两可的问题,我深表歉意。例如,假设 $count 的值为 1 我希望whiptail 的 --inputbox 使用 $description1 已经在脚本前面分配了一个值 然后 $count 将增加到 2 并且whiptail 的 --inputbox 将使用$description2 等等这样有意义吗?我知道这可能会让事情变得更难?

标签: bash shell variables for-loop whiptail


【解决方案1】:

与其尝试将变量名称构建为 "\$description$count" 之类的名称,这似乎是使用 arrays 的好地方。

只需按如下方式定义数组元素:

description[0]="First description"
description[1]="Second description"

然后在您的循环中,将您的结果分配到一个数组中,并从第一个数组中提取您的描述:

diag_res[$i]=$(whiptail --inputbox "${description[$i]}" ...)

请注意,数组是 Bash 特有的功能,并非所有 POSIX shell 都支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多