find . -type d -print | tr -d '\n' | wc -m
tr
удалит все символы новой строки и wc
будет считать число, которое Вы хотите.
Вы можете использовать подоболочку.
alias build='( cd $BUILD_ROOT; m; cp ...; cp...; deploy; deploy; deploy; )'
В вышеупомянутом примере, cd $BUILD_ROOT
изменяет текущий рабочий каталог подоболочки, но не интерактивной оболочки, которая называет псевдоним. Для универсального случая можно использовать подоболочку и прерывание выхода.
alias build='( cleanup() { do; cleanup; }; trap cleanup EXIT; cd $BUILD_ROOT; m; cp ...; cp...; deploy; deploy; deploy; )'
Действительно пересмотрите использование сценария все же. Вышеупомянутый пример выглядел бы намного более чистым в сценарии. Сценарии интерпретируются в их собственных экземплярах оболочки. Синтаксис подоболочки не был бы необходим в сценарии.
Вы упомянули в комментарии, что сценарии зависят от Вашего псевдонима. Это предполагает определение источника сценариев вместо того, чтобы выполнить их который обычно является плохой практикой. Кроме того, Вы упомянули, что существуют псевдонимы, которые зависят от Вашего псевдонима. Можно использовать сценарии в псевдонимах.
Ну, я собирался сказать, делают это сценарием, потому что псевдонимы действительно не предназначены, чтобы сделать, сложные вещи как это и сценарии предназначены для более - сложные или более длинные выполняющиеся задачи. Псевдонимы в основном предназначены, чтобы отобразить одну команду на другого, например, предоставить параметры по умолчанию команде, которая не поддерживает это исходно.
Однако, так как Вы заявили в комментарии, что Вы хотите сохранить это псевдонимом, мы должны будем выяснить, как сделать то, что Вы хотите в границах псевдонима.
Естественный выбор затем становится для запуска подоболочки из псевдонима. Например:
~$ alias xyz1='( cd ~/tmp; sleep 10; cd ~ )'
~$ alias xyz2='cd ~/tmp; sleep 10; cd ~'
~$ xyz2
^C
~/tmp$ cd
~$ xyz1
^C
~$
Это изменяет рабочий каталог только в подоболочке, которая выходит, когда или псевдоним заканчивает выполняться обычно или прерывается, например, через Ctrl+C.