【发布时间】:2011-04-19 14:08:07
【问题描述】:
如何在 Bash 的双字符串中转义双引号?
例如,在我的 shell 脚本中
#!/bin/bash
dbload="load data local infile \"'gfpoint.csv'\" into table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY \"'\n'\" IGNORE 1 LINES"
我无法让带有双引号的ENCLOSED BY '\"' 正确转义。我的变量不能使用单引号,因为我想使用变量$dbtable。
【问题讨论】:
-
@kenorb 看起来不像那个问题的重复...
-
@Daenyth 这不是您希望最终用户有权访问的命令类型。批量加载脚本通常由受信任的用户(例如系统管理员或开发人员)在服务器上运行。是的,如果最终用户控制
$dbtable的值,则存在风险。不过,这非常很少见,因为最终用户通常不会通过 SSH 连接到机器来加载他们的数据。