Вы можете избежать eval
, если позволите расширению приглашения оболочки обрабатывать косвенное обращение:
PS1=\$$env_name sh -si </dev/null 2>&1
Это имеет некоторые преимущества - особенно в том, что за раскрытием не следует выполнение команды. И поэтому единственная опасность здесь заключается в том, что $ env_name
содержит подстановку команды. Переменная, до которой он расширяется, может содержать все, что может выглядеть как подстановка команды без опасности, потому что расширение не выполняется три раза - только дважды. Таким образом, проверка довольно проста:
PS1=$"${env_name##*[\'\(]*}" sh -si </dev/null 2>&1
Учитывая POSIX sh
, это должно быть достаточно безопасно без какого-либо риска выполнения произвольного кода, при этом все еще выводя все экспортированные переменные среды (типа a оболочка может понять) в стандарте.
Да, есть плагин под названием mpv -thumbnail -script для mpv .
Ответ Ipor Sircer достаточен и совершенен, но позвольте мне написать пошаговый ответ для начинающих.
Установить MPV. В Ubuntu вы можете выполнить эту команду.
sudo apt update && sudo apt install mpv
Посетите mpv -thumbnail -страницу релизов сценариев и загрузите mpv_thumbnail_script_client_osc.lua
и mpv_thumbnail_script_server.lua
.
Скопируйте эти сценарии lua в ~/.config/mpv/scripts/
. Каталог может не существовать по умолчанию.
Просто следуя этим шагам, без каких-либо дополнительных конфигураций и с --osc=no
параметром [*], включается функция поиска миниатюр. Однако обратите внимание, что эта функция автоматически отключается при воспроизведении видео продолжительностью более часа. Вы можете снова включить эту функцию, нажав Shift+t
на проигрывателе, или изменить настройку. Что касается последнего случая, см. mpv -thumbnail -script Configurations или выполните echo "autogenerate_max_duration=0" >> ~/.config/mpv/lua-settings/mpv_thumbnail_script.conf
.
[ *] :Вместо этого вы можете выполнить echo "osc=no" >> ~/.config/mpv/mpv.conf
один раз.
Если вы считаете, что создание эскизов занимает много времени, вы можете включить многопоточность -. Это довольно легко. См. еще раз mpv -thumbnail -script Configurations . В моем случае это действительно хорошо работает.
Моя тестовая среда:
$ lsb_release -d
Description: Linux Mint 19 Tara
$ mpv --version
mpv 0.27.2 (C) 2000-2017 mpv/MPlayer/mplayer2 projects
(Японский AGMPlayer для Ubuntu также работал в той же среде, хотя и не стабильно.)