2016-05-30 3 views
0

Расширение параметра bash имеет несколько полезных функций, например. подстрока, заменить, верхняя, нижняя. как объединить эти функции без определения временного параметра?как скомбинировать расширение параметра multi bash

f="abc.txt" 
e=${f:4:3} #txt 
echo ${e^^} #TXT 

Я определяю e для верхнего txt. echo $ {$ {f: 4: 3} ^^} не может работать. Возможно ли опустить e. если в Java я могу написать

String f="abc.txt"; 
System.out.print(f.substring(4,7).toUpperCase()); 

даже, я могу

System.out.print("abc.txt".substring(4,7).toUpperCase()); 
+0

Bash, в отличие от Java, не разработан как язык приложения, это * shell *. Вы не можете ожидать одинакового уровня функциональности в обоих случаях, это разные инструменты для разных заданий. В частности, для этого случая разбор оболочки выполняется совершенно по-другому для обычных языков программирования. – cdarke

ответ

1

Нет, это не возможно в bash AFAIK.

Чтобы было возможно, нам понадобится какая-то приоритизация (наряду с логическими изменениями синтаксического анализа), когда указано более одного расширения параметра, для которых на данный момент кода нет.

Смежные вопросы