bash скрипти. Взаємодія з користувачем. Ввід данних

Більшість скриптів\програм на bash виконуютьс тихо без повідомлень прогресу. Але іноді при виконанні скрипта потрібно бачити прогрес його виконання. В bash існує кілька способів взаємодії які представлені нижче.

Найпростіший спосіб це, звичайно ж, вивід тексту через команду echo.

echo "Описи дії" 

Зазвичай такий спосіб використовують для повідомлення етапу виконання скрипта (початку або завершення виконання). Просто пропишіть команду з текстом до або після потрібної команди і при виконанні скрипта ви будете бачити ці повідомлення.

ОК при успішному виконанні команди.

При виконанні встановлення програми або виконанні інших скриптів можна помітити що виконання деяких етапів відображаються висновком повідомлень ОК\fail. Для цього спочатку потрібно задати колір:

COLOR_SUCCESS = "echo -en \\ 033 [1; 32m" 
COLOR_FAILURE = "echo -en \\ 033 [1; 31m" 
COLOR_NORMAL = "echo -en \\ 033 [0; 39m"

І після необхідної Вам команди, або набору команд, потрібно прописати код який буде відображена ОК\fail в залежності успішного виконання команди:

if [$? -eq 0]; then 
    $ COLOR_SUCCESS 
    echo -n "[command] $ (tput hpa $ (tput cols)) $ (tput cub 6) [OK]" 
    $ COLOR_NORMAL 
    echo 
else 
    $ COLOR_FAILURE 
    echo -n "[command] $ (tput hpa $ (tput cols)) $ (tput cub 6) [fail] " 
    $ COLOR_NORMAL 
    echo 
fi

Ввести yes \ no для продовження виконання

Такий спосіб спостерігається при встановленні програмного забезпечення з консолі. Щоб задіяти цей спосіб в своєму скрипті, можна використовувати такий код:

echo -n "Для продовження напишіть [Yes] або [No] в натисніть Enter:" 

read item 
case "$ item" in 
    YES | yes | Yes | yEs | yeS | YEs | YeS | yES) echo "Ви ввели« Yes » , продовжуємо ... " 
        ;; 
    No | no | nO) echo "Ви ввели« No », зупинка роботи скрипта!" 
        exit 0 
        ;; 
    *) Echo "Ви нічого не ввели. Виполняеться дію за замовчуванням." 
        ;; 
esac

Код потрібно вставити перед необхідною командою. Якщо користувач нічого не введе, а просто натисне Enter – скрипт буде виконуватися далі.

Задіяти вводяться дані

Іноді існує необхідність використовувати при виконанню скрипта\програми дані, які вводить користувач. Як приклад, можна використовувати такий метод:

que = '' 
while [ "$ que" = ""]; do 
    echo -n "Введіть дані які будуть використані в програмі:" 
    read que 
    if [-n "$ que"]; then 
    echo "Ви ввели $ que" 
    fi 
done

Де, 
echo “Ви ввели $ que»  – приклад команди, де буде використано дані, які ввів користувач.

Goodhoster.NET
Додати коментар