在 shell 调用中转义单引号

问题描述 投票:0回答:1

我正在尝试编写一个 systemd 服务文件,而不使用外部脚本。

我需要查询 SQLite 数据库并将内容写入文件。但我的查询使用双引号。我需要将查询括在单引号中,并且由于 systemd 不使用 shell,因此我需要手动使用 shell。那么我该如何实现这个目标呢?

ExecStart=sh -c 'sqlite3 dbfile.db 'SELECT "The db value is: "||value FROM table' > output.log'

我尝试转义内部单引号,但由于某种原因不起作用。

bash systemd
1个回答
1
投票

试试这个:

ExecStart=sh -c 'sqlite3 dbfile.db '\''SELECT "The db value is: "||value FROM table'\'' > output.log'

我曾经使用mysql,双引号也可以工作。你也可以尝试一下:

ExecStart=sh -c 'sqlite3 dbfile.db "SELECT \"The db value is: \"||value FROM table" > output.log'
© www.soinside.com 2019 - 2024. All rights reserved.