Поскольку вы знаете номер строки переменной, в которой она находится в файле script.bash, вы можете сделать это:
#!/bin/bash
file="$HOME/script.bash"
mynewvariable='one
two
three'
substitute_everything_inside_variable () {
tmpf=$(mktemp)
printf '%s\n' "$1" |
sed -e "s/'/'\\\''/g" -e 1s/^/variable=\'/ -e \$s/\$/\'/ > "$tmpf"
sed -i -e "4r $tmpf" -e '5s/^/#/' "$2"
rm -f "$tmpf"
}
substitute_everything_inside_variable "$mynewvar" "$file"
#### eof #####
Таким образом, вы избегаете капризов кавычек и неизвестного диапазона строк переменной $.
ХТХ
Я, наконец, бросил gstreamer
и использовал ffmpeg
без каких-либо проблем.
Команда выглядит так:
ffmpeg -fflags nobuffer -flags low_delay -rtsp_transport tcp -stimeout 1000000 -i <RTSP_stream_addr> -pix_fmt bgra -loglevel