Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
从shell脚本执行的命令中的Mysql关键字_Mysql_Shell - Fatal编程技术网

从shell脚本执行的命令中的Mysql关键字

从shell脚本执行的命令中的Mysql关键字,mysql,shell,Mysql,Shell,我已经知道,为了让Mysql将关键字理解为列名,我们应该添加回勾号 我正在尝试从shell脚本执行此命令 echo "ALTER TABLE partners.partners CHANGE COLUMN `name` `client_name` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL" | $MYSQL 其中,$MYSQL是我的数据库连接命令(对于其他命令来说效果很好) 我试图做的是将名为name的列重命名为client\u n

我已经知道,为了让Mysql将关键字理解为列名,我们应该添加回勾号

我正在尝试从shell脚本执行此命令

echo "ALTER TABLE   partners.partners CHANGE COLUMN `name` `client_name` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL" | $MYSQL
其中,
$MYSQL
是我的数据库连接命令(对于其他命令来说效果很好)

我试图做的是将名为
name
的列重命名为
client\u name
,但出现以下错误:

 ./test_script.sh: 1: ./test_script.sh: name: not found
如果我登录到mysql控制台,执行同样的操作,它工作得非常好


以前有人遇到过这个问题吗

使用单引号避免解释反勾号或`号,否则用于命令替换:

$MYSQL -e 'ALTER TABLE partners.partners CHANGE COLUMN `name` `client_name` varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL'

尝试转义反勾号(即:\`name\`)。我认为backticks被评估为shell命令——这应该是我的第一个反射!正是这样