작은따옴표가 포함된 명령을 실행해야 하는 스크립트를 작성하려고 합니다. 다음은 스크립트에서 실행하려는 명령입니다.
srt-live-transmit udp://224.0.0.0:1234 'srt://@1111?passphrase=thisisatest&latency=500' -v
BASH
내 쉘 스크립트 에 대한 명령은 다음과 같습니다 .
srt-live-transmit $MC srt://${SRT_IP}:${SRT_PORT}?${LATENCY}&${PASS} -v
보시다시피, 명령이 두 개의 매개 변수 및 를 SRT
허용하도록 경로는 작은따옴표로 묶여 있습니다 . , 를 사용하여 작은따옴표를 이스케이프하려고 시도했지만 프로세스 목록에서 프로세스를 찾기 위해 grep을 실행하면 명령이 실행되지 않거나 경로에 작은따옴표가 없습니다.passphrase
latency
\'
'\''
'"'"'
$\'
SRT
답변1
내가 올바르게 이해하고 귀하의 변수에 내 내용이 포함되어 있다면추측하다여기에는 (다음번에 변수의 값이 무엇인지, 어떻게 할당하는지 보여주십시오.) 필요한 것은 참조뿐입니다.
srt-live-transmit "$MC" "srt://${SRT_IP}:${SRT_PORT}?${LATENCY}&${PASS}" -v
작은따옴표로 묶인 문자열 내에서 작은따옴표를 실제로 이스케이프할 수는 없지만 변수를 확장할 수 있도록 큰따옴표를 사용할 수는 있습니다.