Если можно определить значения по умолчанию в переменной, вы сможете сделать:
function timer-raw() {
defs=( loop fsayd )
eval "sleep $((($1)*60))" && eval ${(q+@)@[2,-1]:-$defs}
}
Лично я не стал бы использовать eval, а просто сделал бы:
function timer-raw() {
defs=( loop fsayd )
sleep ${1}m && ${@[2,-1]:-$defs}
}
Если вы запустите echo $PATH
до открытия tmux
и сравните его с вашим PATH
изнутри tmux
, вы заметите, что они разные. По умолчанию tmux
запускает новые оболочки в качестве оболочки входа в систему.
Оболочки входа в MacOS запускают утилиту под названием path_helper
, найденную в /etc/profile
. По умолчанию PATH
при чистой установке MacOS выглядит примерно так
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:
path_helper
добавляет эту строку к вашему PATH
. Поэтому, когда вы запускаете nano
, старая версия сначала находится в этом новом PATH
.
Ответ на исправление этого досадного последствия приведен здесь от Грэма Эштона-
Очистите ваш PATH
перед выполнением path_helper
, добавив следующее в~/.bash_profile
if [ -f /etc/profile ]; then
PATH=""
source /etc/profile
fi
Не забудьте проголосовать за ответ Грэма, если это решит вашу проблему.