【发布时间】:2021-04-18 04:00:04
【问题描述】:
我正在尝试编写一个 systemd 服务文件,而不使用外部脚本。
我需要查询一个 sqlite 数据库并将内容写入文件。但是我的查询使用双引号,我需要将查询用单引号括起来,并且由于 systemd 不使用 shell,我需要手动使用一个。那么我该如何实现呢?
ExecStart=sh -c 'sqlite3 dbfile.db 'SELECT "The db value is: "||value FROM table' > output.log'
我尝试转义内部单引号,但由于某种原因不起作用。
【问题讨论】:
-
将您的命令放在一个单独的脚本中,并将其名称设置为 ExecStart 值
-
我不确定,但
echo 'cmd str1' "cmd str2"...etc | sh有效吗?您可以加入用不同引号括起来的多个字符串。甚至以其他方式,使用\进行常规转义应该可以,对吧?