Как сравнить любую строку с выходом через shell-скрипт команды unix

Сначала установите youtube-dl:

sudo apt-get install youtube-dl

Затем загрузите и конвертируйте видео YouTube

youtube-dl http://www.youtube.com/watch?v=dQw4w9WgXcQ -x

-x преобразует его в аудио.

Дополнительные параметры звука:

-x, --extract-audio              convert video files to audio-only files (requires ffmpeg or avconv and ffprobe or avprobe)
--audio-format FORMAT            "best", "aac", "vorbis", "mp3", "m4a", "opus", or "wav"; best by default
--audio-quality QUALITY          ffmpeg/avconv audio quality specification, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K (default 5)

Домашняя страница:

youtube-dl
1
задан 19 July 2016 в 17:57

1 ответ

Вы пытались что-то вроде этого:

some-command  &
PID=$!
wait $PID
while grep -q un-clean filename.log ; do
  kill -TERM $PID
  some-command  &
  PID=$!
  wait $PID
done

процесс будет убит (см. killall: man killall) и re-run команда будет запущена, пока файл filename.log содержит строка un-clean.

Помогает ли это?

EDIT: после обновления с помощью хорошего решения @Serg и добавлена ​​команда wait, чтобы дождаться окончания команды до проверка файла журнала.

0
ответ дан 23 May 2018 в 07:59
  • 1
    да, это только его попадание в бесконечный цикл. любые предложения для этого? У меня еще 4 процесса, работающих в фоновом режиме, так что kill process тоже убьет их? как использовать команду kill process? я должен написать процесс kill – Siddharth Tiwari 19 July 2016 в 17:01
  • 2
    Возможно, вам придется вставить sleep 5 после команды повторного запуска, чтобы подождать 5 секунд после запуска команды, чтобы дождаться выполнения перед поиском результата? Но если вы хотите только один раз повторить попытку, решение @Serg лучше. – yaap 19 July 2016 в 17:04
  • 3
    нет, я хочу иметь цикл cz, он может показывать нечистоту 4 - 5 раз подряд, поэтому цикл лучше, но его попадание в бесконечный цикл – Siddharth Tiwari 19 July 2016 в 17:07
  • 4
    обновил мое сообщение, чтобы избежать бесконечного цикла (если команда показывает только очистить в 4 - 5 раз) – yaap 19 July 2016 в 19:47

Другие вопросы по тегам:

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