файл сценария оболочки сценария

У меня есть вывод, который мне нужно экспортировать в файл. Затем мне нужно вызвать этот файл, чтобы запустить скрипт. Другим условием было бы запустить последний запрос или инструкцию после 15 минут. См. Следующий код:

#SORT RESULT IN DESCENDING ORDER. #FORMAT SYNTAX FOR BACKUP DELETION sort -r ${TEMPRESULT2} | sed -e "s/^/DELETE BACKUP /g" | sed -e "s/$/ NOWARNING/g" 

вывод:

 DELETE BACKUP (backupid) NOWARNING DELETE BACKUP (backupid) NOWARNING 

[пауза, затем запуск через 15 минут]

 DELETE BACKUP (finalbackupid) NOWARNING 

окончательный идентификатор резервного копирования может выполняться только после завершения всех других резервных копий

надеюсь кто-то может помочь.

  • сравнение двух файлов по строкам
  • Как обрабатывать подкоманду в сценарии оболочки?
  • Добавить текст в командную строку через скрипт оболочки
  • Помогите мне понять сложную подстановку команд с помощью {} и нескольких `\ ls`
  • Поиск строки в выводе команды
  • Звезда печатается для пустого каталога после запуска скрипта для отображения подпапки
  • Получить все файлы, кроме файлов в массиве - Bash
  • tr -d не работает с возвратом каретки
  • 2 Solutions collect form web for “файл сценария оболочки сценария”

    У вас есть две разные последовательности команд, которые должны выполняться в два разных раза. Таким образом, наиболее логичным решением было бы поместить эту команду в два разных файла:

     TEMPRESULT3=$(sort -r ${TEMPRESULT2} | sed -e "s/^/DELETE BACKUP /g" | sed -e "s/$/ NOWARNING/g") # Put all lines except the last one in a first script: echo "$TEMPRESULT3" | head -n -1 >"path/to/first-script" # Put the last line in a second script: echo "$TEMPRESULT3" | tail -n 1 >"path/to/second-script" 

    Насколько я знаю, отрицательный номер строки является расширением GNU head , если он недоступен, вы должны вычислить количество строк перед его исполнением ( total=$(echo "$TEMPRESULT3" | wc -l); all_but_least=$(expr $total - 1) , тогда $all_but_least cna передается как параметр первой команде head вместо -1 ).

    После этого все, что вам нужно сделать, это вызвать этот скрипт так, как вы хотите. Например, если я возьму синтаксис mysql предложенный Бенджамином Б., это будет:

     mysql < "path/to/first-script" # 800 s. = 15 m. sleep 800 mysql < "path/to/second-script" 

    Вы можете записать вывод в файл, выполнив его как программу оболочки, как показано ниже:

     sort -r ${TEMPRESULT2} | sed -e "s/^/DELETE BACKUP /g" | sed -e "s/$/ NOWARNING/g" > file.sh && chmod +x file.sh && sleep 15m && ./file.sh 
    Linux и Unix - лучшая ОС в мире.