gpt4 book ai didi

mysql - Bash - 分解 MySQL 查询的返回值

转载 作者:行者123 更新时间:2023-11-28 23:35:58 25 4
gpt4 key购买 nike

我试图在 shell 脚本中分解 mysql 调用的返回值。基本上我到目前为止所做的是在数据库中查询我存储在特定表中的 IP 地址。从那里我将该返回值存储到 bash 变量中。代码如下:

#!/bin/bash

# This file will be used to obtain the system details for given ip address

retrieve_details()
{
# get all the ip addresses in the hosts table to pass to snmp call
host_ips=$(mysql -u user -ppassword -D honours_project -e "SELECT host_ip FROM hosts" -s)
echo "$host_ips"
# break up the returned host ip values

# loop through array of ip addresses
# while [ ]
# do

# pass ip values to snmp command call

# store details into mysql table host_descriptions

# done
}

retrieve_details

因此这将返回以下内容:

192.168.1.1
192.168.1.100
192.168.1.101

这些基本上是我在主机表中的值。所以我想做的是分解每个值,以便我可以获得如下所示的数组:

arr[0]=192.168.1.1
arr[1]=192.168.1.100
arr[2]=192.168.1.101
...

我在这里查看了此链接:bash script - select from database into variable但我认为这不适用于我的情况。任何帮助将不胜感激

最佳答案

host_ips=($(mysql -u user -ppassword -D honours_project -e "SELECT host_ip FROM hosts" -s));

outer () 会将其转换为数组。但是您需要先将 IFS(内部字段分隔符)更改为换行符。

IFS=$'\n';
host_ips=($(mysql -u user -ppassword -D honours_project -e "SELECT host_ip FROM hosts" -s));
unset IFS;
for i in ${host_ips[@]} ; do echo $i ; done;

打印键

for i in "${!host_ips[@]}"
do
echo "key :" $i "value:" ${host_ips[$i]}
done

关于mysql - Bash - 分解 MySQL 查询的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35737588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com