I need to pass --external-downloader ffmpeg --external-downloader-args -movflags frag_keyframe+empty_moov through my ytdlExtraOptions variable to one my bash functions (defined in my .bash_functions) as 4 arguments :
$ set -- --external-downloader ffmpeg --external-downloader-args -movflags\ frag_keyframe+empty_moov
$ echo $4
-movflags frag_keyframe+empty_moov
$ ytdlExtraOptions="--external-downloader ffmpeg --external-downloader-args -movflags\\ frag_keyframe+empty_moov"
$ set -- $ytdlExtraOptions
$ echo $4
-movflags\
with a bash array :
$ ytdlExtraOptions=(--external-downloader ffmpeg --external-downloader-args -movflags\ frag_keyframe+empty_moov)
$ echo ${ytdlExtraOptions[3]}
-movflags frag_keyframe+empty_moov
$ set -- ${ytdlExtraOptions[@]}
$ echo $4
-movflags
How can I assign my ytdlExtraOptions variable correctly ?
set -- "${ytdlExtraOptions[@]}"and it will properly set your arguments.