加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

-bash:意外令牌附近的语法错误`)’

发布时间:2020-12-15 22:42:18 所属栏目:安全 来源:网络整理
导读:我可能遗漏了一些非常基本的东西.我有一个Web脚本,告诉 shell脚本更新一些数据库记录.这些记录用于统计信息,这样Web脚本就不必在更新数据库记录时等待.但是,我实际上无法让shell脚本从命令行运行它.这是我正在尝试的代码: perl async_sql.pl 'UPDATE some_t
我可能遗漏了一些非常基本的东西.我有一个Web脚本,告诉 shell脚本更新一些数据库记录.这些记录用于统计信息,这样Web脚本就不必在更新数据库记录时等待.但是,我实际上无法让shell脚本从命令行运行它.这是我正在尝试的代码:

perl async_sql.pl 'UPDATE some_table set i = i + 1 WHERE (n in ('328430','334969','330179','335290','335285','335284','335264','335145','335146','335147','335148','335149','335230','335201','335198','335196','335167','335151','335152','335143','334972','334977','334978','334979','334980','334982','334983','334984','334934','334947','334948','334950','334992','335014','335026','335030','335032','334864','334862','334861','334858','334855','334852','334850','334849','334848','334847','334844','334842'))'

巴什告诉我:

-bash: syntax error near unexpected token `)’

我错过了什么?

解决方法

单引号中的单引号是不可能的.请改用“”

perl async_sql.pl "UPDATE some_table set i = i + 1 WHERE (n in ('328430','334969','330179','335290','335285','335284','335264','335145','335146','335147','335148','335149','335230','335201','335198','335196','335167','335151','335152','335143','334972','334977','334978','334979','334980','334982','334983','334984','334934','334947','334948','334950','334992','335014','335026','335030','335032','334864','334862','334861','334858','334855','334852','334850','334849','334848','334847','334844','334842'))"

此外,还有其他方法可以解决此问题:

echo "quote'test"
echo 'quote'"'"'test'
echo 'quote'''test'
echo $'quote'test'

所有这些都应该将quote’test打印为单个参数.这意味着您的问题的另一个很好的解决方案是:

perl async_sql.pl $'UPDATE some_table set i = i + 1 WHERE (n in ('328430','334842'))'

我只在参数前面放了一个美元符号$.而已.单引号前的美元符号开启ANSI-C Quoting

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读