В zsh, $()
позволяет мне запустить команду в скобках и получить стандартный вывод, а ${name:offset:length}
позволяет мне получить подстроку имени переменной. Как я могу вкладывать первое в последнее? В качестве конкретного примера справедливо следующее:
base=$(basename $HOME) # basename of user home directory -- temporary
user3=${base:0:3} # first three letters of $base
Но можно ли добиться того же самого, не определяя временное?
Я знаю, что user3=$(basename $HOME | cut -c 1-3)
справится, но я ищу решение, которое не использует вырезать.