Объединить несколько команд в один прогон одна из них найти
В одной строке я хочу использовать команду find для получения имени файла из txt-файла, его поиска и воспроизведения, а затем после закрытия видео мне нужно запустить определенный скрипт
Я справился с первой частью, но когда дело доходит до запуска скрипта после закрытия видео, это не удается
это команда, которую я использую для воспроизведения видео
find /Videos/ -name $(grep -vm 1 OK '~/content') -exec vlc {} \;
Мне нужно запустить скрипт после его закрытия, чтобы я изменил его
find /Videos/ -name $(grep -vm 1 OK '~/content') -exec vlc {} \; sh '~/close.sh'
но с этим сообщением ничего не получается, он думает, что это неправильно, и рассматривает его как один из вариантов find
так как в одной строке я могу объединить команду после find
это не связано с результатом поиска find
1 ответ
Таким образом:
find /Videos/ -name $(grep -vm 1 OK '~/content') -exec vlc {} \; ; sh '~/close.sh'
Второй ;
не избежал и будет лечиться bash
как прекращение find
команда.
Когда вы делаете
find /Videos/ -name $(grep -vm 1 OK '~/content') -exec vlc {} \; sh '~/close.sh'
;
сбежал (обратите внимание на \
перед ним) и используется для завершения команды для exec
вариант, поэтому все, что после этого продолжает оставаться частью общего find
команда. Поэтому, когда вам нужно запустить команду после find
(и все, что он запускает) выходит, вам нужно добавить секунду ;
сказать bash
что все, что следует, является новой командой.