Задать вопрос
MusicMan_08
@MusicMan_08

Почему bash изменяет переменную?

Помогите разобраться со скриптом:
Есть условие, где присваивается имя для переменной view1
# Check MY-SERVER
if ffmpeg -f libndi_newtek -find_sources 1 -i dummy 2>&1 | grep 'MY-SERVER (1)'
then
        view1=" -f libndi_newtek -thread_queue_size 1024 -i 'MY-SERVER (1)'"
        echo "MY-SERVER (1) is running! Everything is fine..."

Далее, я пытаюсь использовать значение переменной в скрипте:
# Run FFMPEG
ffmpeg -hwaccel cuvid $view1 $view2 $view3 
...
...
...

FFMPEG возвращает ошибку, так как переменные неправильно раскрываются:
-f libndi_newtek -thread_queue_size 1024 -i ''\''MY-SERVER' '(1)'\'''

А мне нужно, чтобы получалось именно так, как задано в переменной:
-f libndi_newtek -thread_queue_size 1024 -i 'MY-SERVER (1)'

Не могу понять, как этого добиться?
Спасибо
  • Вопрос задан
  • 214 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
А так

ffmpeg -hwaccel cuvid "$view1" "$view2" "$view3"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kRosis
Попробуй так
view1=' -f libndi_newtek -thread_queue_size 1024 -i "MY-SERVER (1)"'


upd:
а так?
view1=" -f libndi_newtek -thread_queue_size 1024 -i \'MY-SERVER (1)\'"

или так
IFS=$'\n'
view1=" -f libndi_newtek -thread_queue_size 1024 -i 'MY-SERVER (1)'"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы