[英]bash loop mysql output multiple to variables
new to programming and need a little help. 编程新手,需要一点帮助。
I need to access a MySQL database and loop thru the 'ftpuser' and 'domain' column to give me the output below 我需要访问一个MySQL数据库并通过“ ftpuser”和“ domain”列进行循环,以提供以下输出
echo 2>&1 " 3cmd put -r /home/$ftpuser/backups/ s3://bucket-backup/$domainname/"
when I run the shell script below it outputs ever user with each domain 当我在下面运行shell脚本时,它会输出每个域的用户
3cmd put -r /home/user1/backups/ s3://bucket-backup/domain1.com/
3cmd put -r /home/user1/backups/ s3://bucket-backup/domain2.com
3cmd put -r /home/user1/backups/ s3://bucket-backup/domain3.com/
3cmd put -r /home/user2/backups/ s3://bucket-backup/domain1.com/
3cmd put -r /home/user2/backups/ s3://bucket-backup/domain2.com/
3cmd put -r /home/user2/backups/ s3://bucket-backup/domain3.com/
and so on 等等
the result im looking for is 我正在寻找的结果是
3cmd put -r /home/user1/backups/ s3://bucket-backup/domain1.com/
3cmd put -r /home/user2/backups/ s3://bucket-backup/domain2.com/
3cmd put -r /home/user3/backups/ s3://bucket-backup/domain3.com/
3cmd put -r /home/user4/backups/ s3://bucket-backup/domain4.com/
here is the code 这是代码
filelines=username=$(mysql -h localhost -u root -p -ss -e "use users; SELECT ftpuser FROM users; ")
filelines2=username=$(mysql -h localhost -u root -p -ss -e "use users; SELECT domain FROM users; ")
echo Start
for username in $filelines ; do
for domainname in $filelines2 ; do
echo 2>&1 " 3cmd put -r /home/$username/backups/ s3://bucket-backup/$domainname/"
done
done
Store the elements of filelines
, filelines2
in separate bash arrays and loop once through the index as shown. 将
filelines
, filelines2
的元素存储在单独的bash数组中,并通过索引循环一次,如图所示。
arr1=($filelines)
arr2=($filelines2)
for i in ${!arr1[@]}
do
echo 2>&1 " 3cmd put -r /home/${arr1[$i]}/backups/ s3://bucket-backup/${arr2[$i]}/"
done
Output: 输出:
3cmd put -r /home/user1/backups/ s3://bucket-backup/domain1/
3cmd put -r /home/user2/backups/ s3://bucket-backup/domain2/
3cmd put -r /home/user3/backups/ s3://bucket-backup/domain3/
3cmd put -r /home/user4/backups/ s3://bucket-backup/domain4/
You can refer Looping over arrays, printing both index and value for understanding the looping syntax. 您可以参考循环遍历数组,同时打印索引和值以了解循环语法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.