Cambiar letra mayúscula подставляют сценарий оболочки

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
1
задан 04.05.2017, 00:34
2 ответа

только я вижу, что твой 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
2
ответ дан 24.11.2019, 09:29
  • 1
    Muchí пропасти спасибо, ты решил мне сомнение. Антес habí в попробованный до того, чтобы делать redirecció n в другую переменную, но сейчас все записывает на счет má s чувство. Имейте красивого dí в :D – Skadi Winters 04.05.2017, 00:09

Альтернатива в 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
...
0
ответ дан 24.11.2019, 09:29