Почему это не работает:Преобразовать переменный в нижнюю строку и конкатенировать
MDB="user_"+${PROJECT | tr '[:upper:]' '[:lower:]'}
Пожалуйста, помогите. Благодарю.
Почему это не работает:Преобразовать переменный в нижнюю строку и конкатенировать
MDB="user_"+${PROJECT | tr '[:upper:]' '[:lower:]'}
Пожалуйста, помогите. Благодарю.
MDB="$(echo "user_$PROJECT" | tr '[:upper:]' '[:lower:]')"
(Примечание: внешние двойные кавычки не являются строго необходимыми здесь, но есть много мест, где оставить их out'll вызывают тонкие ошибки, так Я склонен ошибаться на стороне чрезмерного использования.)
MDB="user_${PROJECT}" | tr "[:upper:]" "[:lower:]"
в Баш
MDB = "user _ $ {PROJECT}" | tr "[: upper:]" "[: lower:]" echo $ MDB; сохраняет пустую строку. Однако echo "user _ $ {PROJECT}" | tr "[: upper:]" "[: lower:]" работает. Мне нужен результат, сохраненный в var. – emurad
Это не выполняет команду. Вы должны поместить оценку в «$ (..)». –
Вы знакомы с chcase
?
Попробуйте это:
cat MDB="user_${PROJECT}| tr '[a-z]' '[A-Z]' > user_${PROJECT} // OR whatever you want to name your file.
Вы протестировали это? Вы просто помещаете строку в файл, и вы не включили заключительную цитату. «//» также не является комментарием в BASH. Добавление cat ничего не делает, поскольку это не имя файла. –
Что вы пытаетесь сделать? Вы пытаетесь перевести все, что ${PROJECT}
в нижний регистр перед установкой MDB?
MDB="user_$(echo ${PROJECT} | tr [:upper:] [:lower:])"
The $(..)
говорит оболочке, чтобы выполнить команду и заменить текст стандарта этой команды.
У вас есть небольшая синтаксическая ошибка в вашем скрипте bash. Изменить это просто немного так, что он выглядит следующим образом:
MDB="$(echo "user_$PROJECT" | tr '[:upper:]' '[:lower:]')"
Удачи!
Пожалуйста, не помещайте тег Perl, если это не проблема Perl. –
Это действительно помогло бы, если бы вы включили ожидаемый вывод и каково значение PROJECT, как обычно, то есть оно будет иметь пробелы в значении. Удачи. – shellter
@ Давид В. О., извините. – emurad