【发布时间】:2021-07-08 11:55:22
【问题描述】:
我正在尝试使用 shell 脚本来拆分 mysql 查询输出并将其保存在变量中。我的代码如下所示:
#!/bin/bash
read -ra tokens<<<$(mysql -u root -p'password' -D'users_info' -se 'SELECT token FROM users_logs')
for i in "${tokens[@]}"; do
echo $i
done
var=$(mysql -u root -p'password' -D'users_info' -se 'SELECT token FROM users_logs')
echo $var
和脚本输出:
2z7bhxbk7egquokj855d3
2z7bhxbk7egquokj855d3 we3cq1d95drdq3micu9cn we3cq1d95drdq3micu9cn
如您所见,查询结果是底部的,它包含 3 个标记,但是当我尝试拆分时,它只返回第一个。我认为,这是分隔符的错误,但我真的不知道这里使用了什么分隔符,如果不是空格的话。 谁能帮帮我?
【问题讨论】:
-
mysql 输出是制表符分隔的。查找 man bash 并让您的“阅读”认识到这一点
-
@danblack 和
IFS=' ';在读取之前,第一个输出没有变化,但第二个回显被分成几行。是否有另一种方法可以让“读取”识别分隔符? -
read -d \t ...