大文字を小文字にまたはその逆に変換するbashスクリプト

大文字を小文字にまたはその逆に変換するbashスクリプト

私のスクリプトを確認して提案してください。入力で単語(最小2文字、最大5文字)を取得しようとしています。

ユーザーは文字位置を提供し、スクリプトはそれを小文字から大文字に、または大文字から小文字に変更します。これまでの不完全なスクリプトは次のとおりです。

入力する: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

ベストアンサー1

#!/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

おすすめ記事