我正在尝试编写一个脚本,该脚本必须执行其中包含单引号的命令。这是我尝试在脚本中执行的命令:
srt-live-transmit udp://224.0.0.0:1234 'srt://@1111?passphrase=thisisatest&latency=500' -v
这是我的BASH
shell 脚本的命令:
srt-live-transmit $MC srt://${SRT_IP}:${SRT_PORT}?${LATENCY}&${PASS} -v
正如您所看到的,SRT
路径用单引号括起来,以便命令接受我的两个参数:passphrase
和latency
。我尝试使用\'
, ,转义单引号'\''
,'"'"'
但当我 grep 查找进程列表中的进程时$\'
,该命令要么未执行,要么SRT
路径没有单引号。
答案1
如果我理解正确,并且你的变量包含我的内容猜测它们包含(下次,请向我们展示变量的值是什么以及如何分配它们),那么您所需要的只是引用:
srt-live-transmit "$MC" "srt://${SRT_IP}:${SRT_PORT}?${LATENCY}&${PASS}" -v
您无法真正转义单引号字符串中的单引号,但您可以只使用双引号,它允许扩展变量。