Пример использования ML Space CLI в shell
Создайте файл с расширением .sh и поместите туда следующий код:
#!/bin/bashjob_output=$(mls job run --config job.yaml --output json 2>&1)exit_code=$?if [ $exit_code -ne 0 ]; thenecho "Ошибка запуска задачи: $job_output"exit 1fijob_status=$(echo "$job_output" | jq -r ".status")if [ -z "$job_status" ]; thenecho "Ошибка: не удалось получить статус задачи."exit 1fi# Обрабатываем полученный статус задачиif [ "$job_status" == "success" ]; thenecho "Задача успешно выполнена."elif [ "$job_status" == "failed" ]; thenecho "Задача завершилась с неудачей."exit 1elseecho "Задача в процессе выполнения."fijob_name=$(echo "$job_output" | jq -r ".job_name")while true; dostatus=$(mls job status "$job_name" --output json | jq -r ".status")if [ "$status" == "running" ] || [ "$status" == "failed" ] || [ "$status" == "completed" ]; thenecho "Статус задачи: $status"breakfiecho "Ожидание статуса задачи... Текущий статус: $status"sleep 10doneif [ "$status" == "Failed" ]; thenecho "Задача завершилась с ошибкой"exit 1fimls job logs "$job_name" >> "${job_name}.logs" &# Идентификатор последнего запущенного фонового процессаlog_pid=$!# Использование цикла while для регулярной проверки лог файла# Поиск интересующей строки в логах и ожидание, если строка найдена, цикл завершаетсяwhile true; doif grep -q "Epoch" "${job_name}.logs"; thenecho "Найдена интересующая строка в логах."# Останавливаем фоновый процесс получения логов, если он все еще запущенkill $log_pid 2>/dev/nullbreakelseecho "Интересующая строка в логах пока не найдена. Ждем..."sleep 5fidone