$TMUX_PANE
tmux автоматически определяет эту переменную для нас, и она просто работает:
sleep 2;tmux split-window -h -t $TMUX_PANE
Это фокусирует внимание на разделении при его создании, этого можно избежать с помощью-d
:
sleep 2;tmux split-window -dh -t $TMUX_PANE
Скорее всего, вы выполняете функцию и устанавливаете значение переменной только один раз.
Чтобы автоматически обновлять значение переменной всякий раз, когда вы используете cd
, вы можете переопределить встроенную оболочку -в cd
следующим образом:
cd () {
builtin cd "$@"
echo_pwd=$( echo_pwd )/
}
Это вызовет встроенный -в cd
с любыми аргументами, которые вы передали функции cd
, а затем обновите значение вашей переменной (обратите внимание, что export
не требуется, если вы уже экспортировали его в другом месте, если его вообще нужно экспортировать ).
Полная установка может выглядеть так:
echo_pwd () {
printf '%s\n' "$PWD" # or just: pwd
}
export echo_pwd="$( echo_pwd )/"
cd () {
builtin cd "$@"
echo_pwd=$( echo_pwd )/
}
Я выбрал с использованиемprintf
с $PWD
вместо вызова утилиты pwd
, и я также использую $(...)
для замены команд .
В export echo_pwd="`echo_pwd`/"
замена команды выполняется только один раз, когда переменная установлена.
Если вам нужно обновить значение переменной, вам нужно будет установить его снова.
В интерактивном bash вы можете использовать PROMPT_COMMAND
, который выполняется каждый раз, когда печатается приглашение:
$ PROMPT_COMMAND='echo_pwd="`echo_pwd`/"'
$ cd bar/
$ echo $echo_pwd/
/tmp/foo/bar//
$ cd baz
$ echo $echo_pwd
/tmp/foo/bar/baz/