繁体   English   中英

bash concat字符串在读取时使用单个变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM