Я создал сценарий bash. Назовем это «runner.sh». Внутри я запускаю omxplayer с некоторыми флагами.Почему Bash не распознает мою переменную как строку?
omxplayer $TARGETFOLDER/*.mp4
Это прекрасно работает. Теперь давайте изменим размер и положение видео.
omxplayer —win "0 0 640 480" $TARGETFOLDER/*.mp4
Это тоже хорошо работает. Теперь давайте попробуем поставить «флаг победы» в переменную. Я избегаю цитаты.
SizeAndPosition="—win \"0 0 640 480\""
Хорошо, теперь я это пробовал.
Нет, не работает. Я получаю ошибку Файл «0» не найден. Чтобы быть уверенным, я печатаю всю команду на экран.
echo "omxplayer $SizeAndPosition $TARGETFOLDER/*.mp4"
... и я получаю выход ...
omxplayer —win "0 0 640 480" /homefolder/*.mp4
Почему он не распознает переменный, как и любую другую строку в команде? Могу ли я что-то сделать?
EDIT: Извините за путаницу. Вопрос о SizeAndPosition, почему это не рассматривается как аргумент?
Как 'TARGETFOLDER' определено? (обратите внимание: вы действительно должны помещать кавычки вокруг '$ TARGETFOLDER' в' '$ TARGETFOLDER '/ *. mp4' в случае, если в нем есть пробелы. Это была проблема, но это могло бы испортиться по-другому.) – Wintermute
Не уверен, что это имеет какое-то значение, но не должно быть следующего: '--win 'x1 y1 x2 y2" ', обратите внимание на' '' '' '' '' перед 'win'? – user3439894
Думаю, я в замешательстве. Возникает вопрос, почему '$ TARGETFOLDER' не расширен или почему' $ SizeAndPosition' не рассматривается как два отдельных аргумента? – Wintermute