Как я могу заставить файл сценария вернуться в исходное состояние после ввода команды? (с петлей)? [закрыто]

-1
15.11.2018, 00:10
1 ответ

Использование цикла while:

#!/bin/sh

while :; do
    read -rp 'Please enter function: '
    case $REPLY in
        author)
            echo "John"
        ;; 
    esac
done

Это будет выполняться до тех пор, пока пользователь не введет прерывающую последовательность, которую я не рекомендую. По крайней мере, я бы обеспечил возможность выхода:

#!/bin/sh

while :; do
    read -rp 'Please enter function: '
    case $REPLY in
        author)
            echo "John"
        ;; 
        exit)
            break
        ;;
    esac
done

Другим вариантом (, если доступен bash, )будет меню выбора:

#!/bin/bash

PS3='Select a function: '
select FUNC in author publisher release_date exit; do
    case $FUNC in
        author)
            echo 'John'
        ;;
        publisher)
            echo 'Penguin'
        ;;
        release_date)
            echo '1996'
        ;;
        exit)
            break 2
        ;;
        *)
            echo 'ERROR! Unknown selection' >&2
        ;;
    esac
done
0
28.01.2020, 05:09

Теги

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