shell while read

测试数据

测试脚本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






 
 
 
 
 

猜你喜欢

转载自huangqiqing123.iteye.com/blog/2267105