1

目前我有一个 bash 脚本,它对 hive 表进行基本行计数(将结果存储在变量中),然后对 mysql 表进行另一个行计数。然后 Bash 评估这 2 个变量。到目前为止,这里没有问题。

还有另一个Script.sh,其中列出了大约50个表名。
例如。target_tables="name_table1
name_table2
name_table3
... 等等。

我想这需要一个 for 循环来自动化上述脚本以在单个命令中运行所有 50 个表?如何告诉我的脚本从 anotherScript.sh 中挑选出表名?

4

1 回答 1

1

要遍历变量,您可以:

for table in $target_tables; do
    (do something with $table)
done

如果您的表名包含空格,请使用IFS=$'\n'

(
    IFS=$'\n'
    for table in $target_tables; do
        (do something with $table)
    done
)

如果您使用的是 bash 4.0+,最安全的是:

readarray -t tables <<< "$target_tables"
for table in "${tables[@]}"; do
    (do something with $table)
done
于 2013-09-17T13:47:33.137 回答