将两个参数传递给 shell 脚本

Passing two parameters into shell script

我是非常新的 shell 脚本。我在 shell 脚本中 运行 下面的 sqoop 命令并得到了结果。

shell 脚本中的 sqoop 命令

#!/bin/bash
while read table; do
sqoop eval --connect jdbc:mysql://127.0.0.1/mydb --username root --password cloudera --query "describe $table"
done<tables.txt

输入文件:tables.txt 只有一个词:MYTAB 我正在获取结果。

但是当 tables.txt 中的数据如下所示时,我如何编写脚本从文件中获取两个参数:MYDB:MYTAB 我想将 dbname 和 table name 传递给我在脚本中的 sqoop 命令如下所示。

#!/bin/bash
while read table; do
sqoop eval --connect jdbc:mysql://127.0.0.1/$dbname --username root --password cloudera --query "describe $table"
done<tables.txt

谁能告诉我如何从文件中提取值并将它们放入文件中?

将正确的字段分隔符 IFS 设置为 :

后更改 read 语句
while IFS=":" read -r dbname table; do