Intereting Posts
bash -e выходит, если let или expr оценивается до 0 Я не должен использовать root в моем новом узле Ubuntu, верно? Дисплей памяти с использованием md в u-boot Вывести некоторые разделы текстового файла Как автоматически монтировать внутренние разделы жесткого диска в точки динамического подключения? Извлечь определенный раздел Захват веб-трафика, сгруппированный отдельными потоками TCP Доступ к серверу Apache через Интернет xargs – добавить каждый аргумент с параметром Проблема с отображением – на экране появляется случайная сетка обрезать и вытеснять видео и аудио с помощью avconv (или другого инструмента) Отключить масштабирование процессора с помощью U 1404 Недопустимое присвоение zsh в функции канала Зачем изменять ядро ​​Linux вместо создания модуля ядра? Каковы основные различия между этими linux-дистрибутивами и обычным ежедневным linux, который мы используем?

Как задержать аргумент командной строки?

Я искал SO и обнаружил, что в верхнем регистре следующая строка будет работать

str="Some string" echo ${str^^} 

Но я попытался сделать подобное в аргументе командной строки, что дало мне следующую ошибку

Пытался

 #!/bin/bash ## Output echo ${1^^} ## line 3: ${1^^}: bad substitution echo {$1^^} ## No error, but output was still smaller case ie no effect 

Как мы можем это сделать?

    Синтаксис str^^ который вы пытаетесь, доступен из Bash 4.0 и выше. Возможно, у вас более старая версия:

    Попробуй это:

     str="Some string" echo $str | awk '{print toupper($0)}' 
     echo "lowercase" | tr /az/ /AZ/ 

    Вывод:

     LOWERCASE 

    Будьте осторожны с tr, если только AZ не используется. Для других локалей даже '[: lower:]' '[: upper:]' не работает, только awk's toupper и bash (v4 +) работают

     $ str="abcåäö" $ echo "$str"|tr '/az/' '/AZ/' ABCåäö $ echo "$str"|LC_ALL=sv_SE tr '[:lower:]' '[:upper:]' ABCåäö $ echo "$str"|awk '{print toupper($0)}' ABCÅÄÖ $ echo ${str^^} # Bash 4.0 and later ABCÅÄÖ $ STR="ABCÅÄÖ" $ echo ${STR,,} abcåäö