【发布时间】:2020-09-05 17:30:06
【问题描述】:
我想使用 shell 脚本获得一个值形式的显示变量查询。这是我使用的命令。
data=$(mysql -u root -proot -t -e "show variables where variable_name = 'datadir';" -B --skip-column-names)
输出结果是,
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
所以我只想获得价值。
/var/lib/mysql/
这是我尝试的脚本,
data=$(mysql -u root -proot -t -e "show variables where variable_name = 'datadir';" -B --skip-column-names)
data2=$(echo $data | tr "+---------+-----------------+" "\n")
data3=$(echo $data2 | tr "|" "\n")
data4=$(echo $data3 | tr "datadir " "\n")
echo $data4
它返回“/v /l b/mysql/”。
【问题讨论】:
-
与其摆弄shell来摆脱边界,我宁愿让MySQL一开始就不打印它们。
-
去掉
-t选项。它覆盖了-B,所以你得到了边框。 -
感谢边框已移除。但是如何从结果中删除“datadir”。