Когда нам надо перевести значение какой-нибудь переменной в bash в, например, ВЕРХНИЙ РЕГИСТР, мы можем использовать tr:
foo="foo"
foo=$(echo ${foo} | tr a-z A-Z)
или использовать awk:
foo=$(echo ${foo} | awk '{print toupper($0)}')
или perl:
foo=$(echo ${foo} | perl -ne 'print uc')
или sed:
foo=$(echo ${foo} | sed 's/[a-z]/\U&/g')
А знаете ли вы, что подобные манипуляции с текстом (и даже больше) можно совершать используя только bash? И сделать это очень просто!
Давайте для начала создадим переменную и присвоим ей значение:
foo="foo"
А теперь давайте сделаем самую первую букву (f) — заглавной (F):
foo=${foo^}
echo $foo
Foo
Круто! А теперь давайте сделаем первую букву обратно строчной:
foo=${foo,}
echo $foo
foo
Великолепно! А теперь сделаем все буквы заглавными:
foo=${foo^^}
echo $foo
FOO
Потрясающе! А теперь снова вернём всё, как было — в нижний регистр:
foo=${foo,,}
echo $foo
foo
Готово! Надеюсь, что вы научились чему-то новому! Удачи в скриптах!
#bash #shell #bash script #shell script #скрипты #linux #linux terminal #программирование #программирование на bash