测试数据
测试脚本1(声明的变量个数与实际列数相同)
脚本1执行结果
测试脚本2(声明的变量个数小于实际列数)
脚本2测试结果
说明:
while read 后面声明的变量个数,如果小于实际的列数,则多出的列的值全部赋值给最后一个变量。
示例2
#!/bin/bash #脚本功能:检查数据库名称是否已存在 #该脚本接受 1 个参数 #参数1 数据库名称 username=root password=root host=10.70.2.157 port=3306 connectstr="mysql -u${username} -p${password} -h${host} -P${port}" #定义变量res,用于接收子进程 while read 的标准输出 res=`${connectstr} -e "SHOW DATABASES" | while read database do if [ ${database} = "$1" ] then echo "true" #退出子进程 exit 0 fi done` #最终输出 if [ -z $res ] #如果res为空 then echo "{\"result\":false}" elif [ $res = "true" ];then echo "{\"result\":true}" else echo "{\"result\":\"error\"}" fi