Вот еще один вариант скрипта, который будет делать то же самое:
#! /bin/bash
read -p 'Want Task 1 '
if [ "${REPLY^}" = Y ] ; then
echo 'Task One Done'
read -p 'Want Task 2 ?? '
if [ "${REPLY,}" = y ] ; then
echo 'Task 2 Done'
fi
fi
Переменная по умолчанию для read
— $REPLY
. При использовании ${REPLY^}
вы получите содержимое в верхнем регистре, а при использовании ${REPLY,}
— в нижнем. Поскольку переменная может быть пустой, вам нужно заключить ее в кавычки "
.
Если вы действительно хотите вызвать внешнюю программу, такую как grep
, вы можете сделать это следующим образом:
read -p 'Want Task 1 '
if echo $REPLY | grep -icq ^y ; then
echo 'Task 1 Done'
fi
Что на самом деле происходит выше, так это то, что мы запускаем команду, и если значение выхода не равно 0, это правда. Этот пример покажет это:
if /bin/true ; then
echo We have always the yes hat on
fi
А [
— это просто программа с именем /usr/bin/test
. Ищите его в разделе man test
.
https://github.com/wrp/mtm/tree/smtx еще не созрел, но подает надежды. Недавно я использовал его в termux на Android, чтобы дать мне произвольно широкие терминалы. Он пока не поддерживает возможность просмотра разных частей pty в разных окнах.