Вы можете использовать поиск apt-cache
. Например, для поиска в firefox:
apt-cache search firefox
Это соответствующий фрагмент из man 8 apt-cache
:
search regex [ regex ... ]
search performs a full text search on all available package lists
for the POSIX regex pattern given, see regex(7). It searches the
package names and the descriptions for an occurrence of the regular
expression and prints out the package name and the short description,
including virtual package names. If --full is given then output
identical to show is produced for each matched package, and if
--names-only is given then the long description is not searched,
only the package name is.
Separate arguments can be used to specify multiple search patterns
that are and'ed together.
Следующий код будет зацикливаться до тех пор, пока ВЫБОР не равен "ВЫХОД" или целое число меньше ЧИСЛА:
NUMBER=22
while :; do
read CHOICE
case $CHOICE in
QUIT) break;;
*[!0-9]*|'') ;;
*) test "$CHOICE" -lt "$NUMBER" && break;;
esac
done
Если вы также хотите, чтобы цикл завершался, когда пользователь вводит ^D, вы должны поставить read
в качестве условия цикла:while read CHOICE; do case $CHOICE...
.
Вам может понадобиться дополнительный тест для альфа-символов, например
while [ "$CHOICE" != "QUIT" ] && { [ "${CHOICE//[[:alpha:]]}" != "$CHOICE" ] || [ "$CHOICE" -gt 10 ]; }
do read CHOICE < /dev/tty
done
Настройки ответаmosvy :
NUMBER=22
while read CHOICE ; do
case "${CHOICE}" in
QUIT) break ;;
*[!0-9]*) ;;
?*) [ "${CHOICE}" -lt $NUMBER ] && break ;;
esac
done
read
в цикл. $CHOICE
и *)
на ?*)
, сделав одним менее условным--mosvy |''
может просто провалиться.