在 bash 脚本命令中转义单引号

在 bash 脚本命令中转义单引号

我正在尝试编写一个脚本,该脚本必须执行其中包含单引号的命令。这是我尝试在脚本中执行的命令:

srt-live-transmit udp://224.0.0.0:1234 'srt://@1111?passphrase=thisisatest&latency=500' -v

这是我的BASHshell 脚本的命令:

srt-live-transmit $MC srt://${SRT_IP}:${SRT_PORT}?${LATENCY}&${PASS} -v

正如您所看到的,SRT路径用单引号括起来,以便命令接受我的两个参数:passphraselatency。我尝试使用\', ,转义单引号'\'''"'"'但当我 grep 查找进程列表中的进程时$\',该命令要么未执行,要么SRT路径没有单引号。

答案1

如果我理解正确,并且你的变量包含我的内容猜测它们包含(下次,请向我们展示变量的值是什么以及如何分配它们),那么您所需要的只是引用:

srt-live-transmit "$MC" "srt://${SRT_IP}:${SRT_PORT}?${LATENCY}&${PASS}" -v

您无法真正转义单引号字符串中的单引号,但您可以只使用双引号,它允许扩展变量。

相关内容