Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在读取时使用单个变量中的bash concat字符串_Mysql_Database_Bash_Shell - Fatal编程技术网

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

Mysql 在读取时使用单个变量中的bash concat字符串,mysql,database,bash,shell,Mysql,Database,Bash,Shell,在下面的脚本中,我尝试从mysql数据库中获取所有表的名称,我希望所有表的名称都打印出来,但无论我做什么或使用哪一个,它都不起作用。我想打印的字符串是相互重叠的表名: 看门狗 这个脚本有什么问题 mysql -Nse 'show tables' DATABASE | { while read table do alltables="$alltables $table" done echo $alltables; } 是否mysql

在下面的脚本中,我尝试从mysql数据库中获取所有表的名称,我希望所有表的名称都打印出来,但无论我做什么或使用哪一个,它都不起作用。我想打印的字符串是相互重叠的表名:

看门狗

这个脚本有什么问题

  mysql -Nse 'show tables' DATABASE |
    { 
    while read table
    do
    alltables="$alltables $table"
    done 
    echo $alltables;
    }

是否
mysql
通过
\n\r
而不是
\n
来分隔表名?然后,
读取
将读取
第一个表
\r第二个表
,依此类推。在大多数linux终端中,
\r
会使光标跳回当前行的开头<代码>ABC\r\u将打印为
\u BC

正在检查
\r

执行mysql-Nse'show tables'数据库| sed's:\r:\\r:'并查看输出。控制字符
\r
将作为文本字符串
\r
打印

删除
\r

插入一个
…|tr-d'\r'|…
在命令之间。

是否是
mysql
通过
\n\r
而不是
\n
分隔表名?然后,
读取
将读取
第一个表
\r第二个表
,依此类推。在大多数linux终端中,
\r
会使光标跳回当前行的开头<代码>ABC\r\u将打印为
\u BC

正在检查
\r

执行mysql-Nse'show tables'数据库| sed's:\r:\\r:'并查看输出。控制字符
\r
将作为文本字符串
\r
打印

删除
\r

插入一个
…|tr-d'\r'|…
命令之间。

mysql-Nse'show tables'DATABASE | xargs
mysql命令本身的输出是什么?也就是说,除非你有令人信服的理由不这样做,否则一定要使用
IFS=read-r table
。您可能还需要检查echo“$alltables”|od的输出,以便更好地了解值中的确切字符。输出是与\n\r连接的表名,这是罪魁祸首。
mysql-Nse“show tables”数据库| xargs
mysql命令本身的输出是什么?也就是说,除非你有令人信服的理由不这样做,否则一定要使用
IFS=read-r table
。您可能还想检查
echo“$alltables”|od
的输出,以便更好地了解值中的确切字符。输出是与表名连接的\n\r,这是罪魁祸首。检查片段没有显示\r,但它起了作用,谢谢。:)检查代码段没有显示\r,但它工作正常,谢谢。:)