Necesito hacer сценарий ООН que te pida introducir una letra minúscula mediante read
y que con una tubería hacia tr
cambie la letra minúscula por una mayúscula.
Довод "против" case
танго que decir dependiendo de si esa letra ahora mayúscula es A, B o C que en pantalla diga que es una curva y si es D, E o F una recta.
Este es el código que llevo actualmente:
read -p "introduce una letra minúscula" letra || tr '[a-e]' '[A-E]'
case $letra in
A|B|C)
echo "es curva"
;;
D|E|F)
echo "es una recta"
;;
*)
echo "no es ni curva ni recta"
esac
только я вижу, что твой problemea в твоем c¦digo был uppercase, так как не проходила буква в mayus для case. Попытайся с estÃ: сформируй $letra | tr 'a-z' 'A-Z')
#!/bin/bash
read -p "introduce una letra minúscula: " letra
letra=$(echo $letra | tr 'a-z' 'A-Z')
echo "Letra introducida : $letra "
case $letra in
A|B|C)
echo "es curva"
;;
D|E|F)
echo "es una recta"
;;
*)
echo "no es ni curva ni recta"
esac
Ejecuci¦n:
> $ ./Test.sh introduce una letra minúscula: a
Letra introducida : A
es curva
Альтернатива в tr
- built-in declare -u
#!/bin/bash
declare -u letra
read -p "introduce una letra minúscula: " letra
...
, что declare -u
любой текст, распределенный переменной "буква" преобразовывает ее в mayГєsculas.
Другая альтернатива состоит в том, чтобы использовать brace расширение.
#!/bin/bash
read -p "introduce una letra minúscula: " letra
case ${letra^^} in
...
, где expansiГіn ${letra^^}
направляет эту переменную в mayГєsculas.
Вариант в zsh serГ - во что-то asГ-:
#!/usr/bin/zsh
read "?introduce una letra minúscula: " letra
case ${letra:u} in
...