【发布时间】:2020-10-04 11:17:42
【问题描述】:
我有一个包含 1 到 20 个变量的应用程序。除了以序号结尾外,每个变量的名称都是相同的。从_1 到_20。
例如:
Value_1, Value_2, Value_3...Value_20
我想做的是:
- 先查看变量是否存在。可能有一个变量或其中的 20 个。此外,不能保证它们按特定顺序排列。例如,可能只存在 Value_15。
- 对于以
Value_开头的变量,我想检查一下它们是否为空。 - 对于那些不是 NULL 或 EMPTY 的变量,我想获取它们的值并将它们提供给另一个进程。
我听说使用数组可能是要走的路。但我必须将找到的变量转换为数组......或者 我可以从 1...20 对它们进行交互,看看它们是否存在并且它们有分配给它们的值,我可以从每个中提取值。
最好的方法是什么?
【问题讨论】:
-
您可以通过
$@访问所有变量,使用$#访问输入变量的数量。检查变量是否为空,使用if [ -z "$VALUE_1" ] -
VALUE_1与Value_2的不同情况是否是故意的? -
查看"Dynamic variable names in Bash" 和BashFAQ #6 的非基于数组的答案。
标签: linux bash loops variables