скрипты bash преобразуют прописные буквы в нижний регистр и наоборот

Просьба проверить и сообщить свой сценарий. Я пытаюсь получить слово (мин. 2, максимум 5 символов) в качестве его ввода.

Пользователь предоставит позицию символа, а затем скрипт изменит его либо с нижнего, либо на верхний или верхний регистр. Ниже приведен неполный сценарий:

input: teSt 3

выход: test

 #!/bin/bash clear while true do echo ******TEST***** read -p 'Enter a word :' word if [[ ${#word} -le 1 ]] || [[ ${#word} -ge 6 ]]; then echo "Invalid input (Min of 2 and max of 5)!." exit 1 fi echo ${word^^*} done 

3 Solutions collect form web for “скрипты bash преобразуют прописные буквы в нижний регистр и наоборот”

 #!/bin/bash read -p 'Enter a word : ' str id if [[ ${#str} -le 1 ]] || [[ ${#str} -ge 6 ]]; then echo "Invalid input (Min of 2 and max of 5)!." && exit 1 idt=$((id-1)) case ${str:idt:1} in [[:lower:]]) r='\U'; ;; [[:upper:]]) r='\L'; ;; esac echo $str | sed -r "s/./$r&/$id" 

 $ ./script.sh Enter a word : test 1 Test $ ./script.sh Enter a word : Test 2 TEst $ ./script.sh Enter a word : teST 3 tesT 

вы можете использовать ~ для переключения верхнего и нижнего регистра,

Проверь это:

 #!/bin/bash clear while true do echo ******TEST***** read -p 'Enter a word :' word pos if [[ ${#word} -le 1 ]] || [[ ${#word} -ge 6 ]]; then printf "\n\tInvalid input (Min of 2 and max of 5)!.\n\n" fi for x in `seq 0 ${#word}`; do c=${word:$x:1} if [ "$x" -eq "$(($pos-1))" ]; then printf "%s" "${c~}" else printf "%s" "${c}" fi done printf "\n\n" done 

Этот скрипт только переключает случай указанной буквы. Он не подтверждает ввод.

 #!/bin/bash while read -r -p "Enter a word :" word position; do sed -r "s/([az])|([AZ])/\U\1\L\2/${position}" <<< "$word" done 

Тестирование:

 $ ./up_and_low_case.sh Enter a word :CAT 2 CaT Enter a word :rabbit 4 rabBit 
  • BASH: как передать аргумент по умолчанию, если никакие аргументы после первого не прошли
  • Несколько команд с котировками после SSHing
  • текст для создания файла xls
  • Нам нужно, чтобы chmod сценарий оболочки, прежде чем он может быть rsh
  • отображение PID
  • Добавить что-то в каждый список в файле
  • как сохранить вывод команды в массив с каждым значением в двойной кавычки
  • Как удалить место во всех подкаталогах в сценарии оболочки?
  • вызов $ PWD из другого скрипта
  • Оболочка: взаимный трубопровод STDIN / STDOUT двух команд
  • Как я могу установить переменную среды постоянно через сценарий оболочки?
  • Linux и Unix - лучшая ОС в мире.