我的脚本需要在结构中存储查询结果:
#!/bin/bash
user="..."
psw="..."
database="..."
query="select name, mail from t"
customStructure=$(mysql -u$user -p$psw $database -e "$query";)
Run Code Online (Sandbox Code Playgroud)
我不知道如何从查询结果中存储{name,mail}数组.
我需要这样的结构:
array=[ [name1,mail1] , [name2,mail2], ....., [nameN, mailN] ]
Run Code Online (Sandbox Code Playgroud)
有没有办法在bash中这样做?
Ale*_*lex 17
Bash数组初始化如下:
myarray=("hi" 1 "2");
Run Code Online (Sandbox Code Playgroud)
要将命令输出的各个部分捕获到数组中,我们必须遍历输出,将结果添加到数组中.这可以这样做:
for i in `echo "1 2 3 4"`
do
myarray+=($i)
done
Run Code Online (Sandbox Code Playgroud)
在您的示例中,看起来您希望获得MySQL命令的输出并将其输出行的部分存储到子数组中.我将向您展示如何将线捕获到数组中,并且鉴于此,您应该能够弄清楚如何将子数组放入其中.
while read line
do
myarray+=("$line")
done < <(mysql -u${user} -p${psw} ${database} -e "${query}")
Run Code Online (Sandbox Code Playgroud)
值得一提的是,对于这种MySQL操作,您不需要输出元数据(例如漂亮的格式和表名),您可以使用MySQL的-B
选项来进行"批量输出".
归档时间: |
|
查看次数: |
25651 次 |
最近记录: |