Bash конвертирует последний символ в нижний

Я пытаюсь преобразовать последний символ переменной в нижний.

MY_STRING = "THE_NAME_UPPER_A"

Я хочу изменить это на THE_NAME_UPPER_a. я пробовал это

MY_NEW_STRING = "${MY_STRING,,A}"

но он меняет все A на a, я просто хочу изменить последний.

Вы имеете в виду, что пытаетесь преобразовать последний символ строки в нижний?

GʀᴜᴍᴘʏCᴀᴛ 04.09.2024 15:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если я вас правильно понимаю, вы можете использовать tr:

## Your string
MY_STRING = "THE_NAME_UPPER_A"

## Everything but the last character
prefix = "${MY_STRING:0:$((${#MY_STRING}-1))}"

## Getting the last character
lastChar = "${MY_STRING: -1}"

## Change last character to lowercase
lastCharLow = "$(echo "$lastChar" | tr '[:upper:]' '[:lower:]')"

## Combine it all and echo
echo "${prefix}${lastCharLow}"

устраните двойные подоболочки, необходимые для $(echo ... | tr ...), с помощью lastCharLow = "${lastChar,,}"

markp-fuso 04.09.2024 15:24

В обычном bash без использования внешней команды:

my_string = "THE_NAME_UPPER_A"

lastchar=${my_string: -1}
my_new_string=${my_string:: -1}${lastchar,}

echo "$my_new_string"

Другие вопросы по теме

Bash с использованием сценария Expect выдает ошибку при вызове ssh
Почему моя программа, запущенная из сценария bash, останавливается, когда сценарий находится в фоновом режиме, но только тогда, когда он получает стандартный ввод из именованного канала?
Когда grep ищет шаблоны в файле с кавычками и/или без кавычек в bash?
Как извлечь столбцы из файла CSV, обработать и создать файл CSV на основе результата извлечения и обработки?
Скрипт Bash, который принимает несколько аргументов пути и проверяет, можно ли там успешно создать файлы
Как мне отслеживать и уничтожать все процессы, порожденные запуском сценария, не зная имен подпроцессов?
Псевдоним Git для извлечения всех удаленных веток
Git sed игнорировать двоичные файлы
Как передать переменную оболочки, возвращаемую из Pythonscript, в другую оболочку для запуска другого Pythonscript в правиле Makefile?
Пользовательский номер строки/префикс для текстового файла с использованием awk/sed

Похожие вопросы

Почему в этом случае составная команда (( присваивает значение переменной?
Как использовать цикл bash for для awk для печати строки FPAT, найденной в переменной в кавычках
Bash printf не работает для чисел с плавающей запятой
Bash с использованием сценария Expect выдает ошибку при вызове ssh
Почему моя программа, запущенная из сценария bash, останавливается, когда сценарий находится в фоновом режиме, но только тогда, когда он получает стандартный ввод из именованного канала?
Когда grep ищет шаблоны в файле с кавычками и/или без кавычек в bash?
Как извлечь столбцы из файла CSV, обработать и создать файл CSV на основе результата извлечения и обработки?
Скрипт Bash, который принимает несколько аргументов пути и проверяет, можно ли там успешно создать файлы
Почему bash не завершает выполнение сценария после ошибки внутри скобок?
Как запустить эмулятор терминала во время работы оболочки?