Я сделал скрипт, который запрашивает у вас строку, затем вам нужно выбрать число из списка, и, если вы на самом деле выбрали число, программа напечатает строку, но со стилем и тем, что вам нужно напишите, чтобы применить выбранный вами стиль к строке (код ниже), есть ли способ сделать это короче? (особенно операторы if и elif)
#!/bin/bash
clear
echo "Hello, who am I talking to?"
# Get string from user input
read -p 'String: ' string
echo $string
echo "Please select a modifier from this list by typing the modifier\'s number."
# List possible styles that can be applied to the string
printf '\e[1;4;33m[1] Bold string\n'
printf '\e[4;33m[2] Underlined string\n\e[0;33m'
printf '\e[30;47m[3] Black foreground\n\e[0;33m'
printf '\e[31;47m[4] Red foreground\n'
printf '\e[32m[5] Green foreground\n'
printf '\e[33m[6] Yellow foreground\n'
printf '\e[34m[7] Blue foreground\n'
printf '\e[35m[8] Purple foreground\n'
printf '\e[36m[9] Cyan foreground\n'
printf '\e[0;37;40m[10] White foreground\n\e[0;33m'
printf '\e[1;4;33m[11] Black background\n'
printf '\e[1;4;33m[12] Red background\n'
printf '\e[1;4;33m[13] Green background\n'
printf '\e[1;4;33m[14] Yellow background\n'
printf '\e[1;4;33m[15] Blue background\n'
printf '\e[1;4;33m[16] Purple background\n'
printf '\e[1;4;33m[17] Cyan background\n'
printf '\e[1;4;33m[18] White background\n\e[0;37m'
# Ask user to choose a style to apply
read -p 'Number: ' number
# Check if the number is between 1 and 18
if ! [[ $number =~ ^([1-9]|1[018])$ ]]
then
echo 'Please only select a number from 1 to 18'
fi
# If the number that the user chose is 1, print a bold string
if [[ $number = 1 ]]
then
printf "\e[1;37m${string}\n"
echo "\e[1;37m${string}\n"
elif [[ $number = 2 ]]
then
printf "\e[4;37m${string}\n"
echo "\e[4;37m${string}\n"
#(etc.)