Я предпочел бы создавать новый список и заменять старый новым:
nodes="127.0.0.1 1.2.3.4 1.2.3.4 "
nodes_out=
for node in $nodes
do
ping -c 1 $node >/dev/null 2>&1 && nodes_out+=$node
done
nodes=$nodes_out
Делали ли вы echo $TMUX
, в то время как в сессии tmux
? Потому что TMUX
устанавливается только в сеансе.
Попробуйте вместо этого:
[ -z "$TMUX" ] && command -v tmux >/dev/null && TERM=xterm-256color exec tmux
Хорошо, если вы хотите запустить tmux
только тогда, когда он существует в $PATH
и , когда он еще не запущен, то вы можете сделать:
command -v tmux >/dev/null && ${TMUX+:} TERM=xterm-256color exec tmux
Shorter still:
tmux -c "${TMUX+!} :" 2>/dev/null && exec tmux -2
Второй просит tmux
вернуть 0, если ${TMUX}
не установлен &&
, если это так, оболочка выполняет tmux -2
, чтобы заставить 256-цвет. Оно вернётся true только в том случае, если tmux
может быть запущен в $PATH
и если переменная окружения $TMUX
не существует.
Используйте
which tmux && export TERM=xterm-256color && exec tmux
Если есть tmux
, , который tmux
оценит путь к tmux
двоичному файлу, следовательно, к истинному
. Если нет tmux
, то он вычислит пустую строку, то есть false
.