[英]bash concat strings in single variable using while read
在下面的脚本中,我尝试从mysql数据库中获取所有表名,并且希望打印出所有表名,但是无论我做什么或使用哪种方法 ,它都行不通。 我想打印的字符串是表名彼此重叠:
看门狗
这个脚本怎么了?
mysql -Nse 'show tables' DATABASE |
{
while read table
do
alltables="$alltables $table"
done
echo $alltables;
}
是不是mysql
用\\n\\r
而不是\\n
分隔了表名? read
后将读取First Table
, \\rSecond Table
,依此类推。 在大多数linux终端中, \\r
导致光标跳回到当前行的开头。 ABC\\r_
将被打印为_BC
。
\\r
执行mysql -Nse 'show tables' DATABASE | sed 's:\\r:\\\\r:'
mysql -Nse 'show tables' DATABASE | sed 's:\\r:\\\\r:'
并查看输出。 控制字符\\r
将被打印为文字字符串\\r
。
\\r
插入... | tr -d '\\r' | ...
... | tr -d '\\r' | ...
... | tr -d '\\r' | ...
在命令之间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.