Я пытаюсь использовать встроенную подстроку bash для замены вывода подоболочки или другой функции bash.
Следующие команды довольно хорошо работают в zsh; но приводит к bad substitution
ошибке в bash:
${${PWD##*/}//trunk/latest}
или
${$(basename $PWD)//trunk/latest}
вывод должен быть последней папкой $PWD
, замененной на latest
когда мой текущий каталогtrunk
так /home/user/trunk
должно статьlatest
Существует ли эквивалент bash, позволяющий объединять строки в цепочку, не полагаясь на переменные или каналы? Или встроенные команды bash позволяют вводить только строковые или простые переменные?
sed
за несколько шагов. Но я не понимаю, почему bash отказывается выполнять subshell, а затем заменяет его содержимое, как любую другую строку