Альтернатива проверки чтения (два подсказки и, если тогда альтернатива сравнения)

Похоже на то, что действие at будет сохранено после перезагрузки, как и ответ here.

Да, они сохраняются после перезагрузки (это просто файлы в спуле).

Файлы, используемые at, как подробно описано на странице man:

/var/spool/at

Когда вы планируете действие, оно будет сохранено в файле в /var/spool/at/

1
03.04.2019, 06:39
2 ответа

Как насчет функции оболочки? Нравится

function read_n_verify  {
    read -p "$2: " TMP1
    read -p "$2 again: " TMP2
    [ "$TMP1" != "$TMP2" ] &&
    { echo "Values unmatched. Please try again."; return 2; }
    read "$1" <<< "$TMP1"
}
read_n_verify domain "Please enter the domain of your web application" 
read_n_verify dbrootp "Please enter the app DB root password" 
read_n_verify dbuserp "Please enter the app DB user password"

Затем выполните желаемое действие с помощью $domain, $dbrootp, $dbuserp.

$1используется для переноса имени переменной для более позднего readиз «здесь строки», которая, в свою очередь, используется, поскольку здесь проще, чем (, также можно использовать )«здесь документ».

$2содержит подсказку (свободный )текст, используемый последним, чтобы разрешить (вид )«неограниченной» длины текста.

Верхний регистр TMP и [... ] &&"сахарный -синтаксис" (каким бы он ни был )используются по личному предпочтению.

if - then - fiтакже можно использовать, и это устранит необходимость в фигурных скобках, которые собирают несколько команд в одну команду, которая будет выполняться как ветвь &&.

3
27.01.2020, 23:23

Я бы сделал так:

#!/bin/bash
while [[ $string != 'string' ]] || [[ $string == '' ]] 
do
    read -p "Please enter the domain of your web application: " string
    echo "Please enter the domain of your web application: "
done 
Command 1
Command 2

Less typing.

Конечно, вам понадобится такой раздел для всех ваших вопросов.

Кроме того, что есть у вас и у меня, других вариантов нет.

0
27.01.2020, 23:23

Теги

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