当我在无限循环中打印1时,为什么这个比较不能正常运行?
while [[ "$(mysql -u root -e "select 1")" != 1 ]]; do
mysql -u root -e "select 1"
sleep 1
done
输出
1
1
1
1
1
1
1
1
1
1
1
1
0000000 1 \n 1 \n
0a31 0a31
0000004
0000000 1 \n 1 \n
0a31 0a31
0000004
0000000 1 \n 1 \n
0a31 0a31
0000004
0000000 1 \n 1 \n
0a31 0a31
0000004
0000000 1 \n 1 \n
0a31 0a31
0000004
0000000 1 \n 1 \n
0a31 0a31
0000004
0000000 1 \n 1 \n
0a31 0a31
答案 0 :(得分:0)
MySQL select语句select 1
将返回两件事:
列名称为1
,值也为1
。
为避免在输出中获取列名,请使用--skip-column-names
(或-N
)选项mysql
。
您可能还想使用--batch
(-B
),因为这会禁用为默认情况下未关闭的表生成ASCII格式的表:
$ mysql (options) -e 'select 1'
+---+
| 1 |
+---+
| 1 |
+---+
$ mysql -N (options) -e 'select 1'
+---+
| 1 |
+---+
$ mysql -B -N (options) -e 'select 1'
1