Почему ffplay не может получить поток dash?

Начиная с:

$ seq -f "http://10.10.10.%g:8080" 1 3
http://10.10.10.1:8080
http://10.10.10.2:8080
http://10.10.10.3:8080

Затем вы можете превратить это в функцию:

$ ddcount() { seq -f "http://10.10.10.%g:8080" "$@" ; }
$ ddcount 5 7
http://10.10.10.5:8080
http://10.10.10.6:8080
http://10.10.10.7:8080

(примечание :, так как это просто передает все аргументы команде seq, ПЕРВЫЙ аргумент является необязательным и по умолчанию равен 1. т. е. seq 3совпадает с seq 1 3, а ddcount 3совпадает с ddcount 1 3. Вы также можете указать приращение, если оно необходимо. Подробнее см. man seq)

Объедините это с другой функцией, чтобы объединить аргументы с помощью разделителя (, например. запятая):

$ join_by() { local d=$1; shift; printf '%s' "$1"; shift; printf '%s' "${@/#/$d}"; }

Эта функция смоделирована на основе функции perl join(), но названа join_by, поэтому не конфликтует с командой join. Первый аргумент - разделитель. Остальные аргументы — это данные, которые нужно соединить.

$ join_by, $(ddcount 1 3)
http://10.10.10.1:8080,http://10.10.10.2:8080,http://10.10.10.3:8080

Примечание :Не заключайте в двойные кавычки -вызов функции $(ddcount 1 3)-вы хотите, чтобы возвращаемая строка была словом -разделена на несколько элементов, а не просто одна длинная строка. Сравните вывод приведенной выше команды с join_by, "$(ddcount 1 3)", чтобы увидеть разницу.

Наконец, собрав все воедино:

start=1; stop=3
/usr/local/bin/apiserver --dubdub="$(join_by, $(ddcount "$start" "$stop"))" --master

или

dd="$(join_by, $(ddcount "$start" "$stop"))"
/usr/local/bin/apiserver --dubdub="$dd" --master
2
19.01.2021, 09:39
0 ответов

Теги

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