Eu me deparei com um problema um pouco estranho em Cygwin
quando estou usando o comando Tmux run-shell
.
Dado o script:
#!/usr/bin/env bash
read -r -d '' var << EOF
This is line 1.
This is line 2.
Line 3.
EOF
echo "Running in shell: $SHELL"
while read line;
do
echo $line
done <<EOF
$var
EOF
while read line;
do
echo $line
done < <(echo "$var")
Executá-lo diretamente com o bash funciona muito bem ( bash ~/test_script.sh
), produzindo:
Running in shell: /bin/bash
This is line 1.
This is line 2.
Line 3.
This is line 1.
This is line 2.
Line 3.
Quando tento executar isso usando tmux run-shell test_script.sh
, obtenho:
Running in shell: /usr/bin/bash
This is line 1.
This is line 2.
Line 3.
'/cygdrive/c/Users/gusta/test_script.sh' returned 2
Agora, estou ciente de que o segundo loop é um Bashism, então eu provavelmente perdi algum tipo de configuração para garantir que o Tmux use Bash corretamente. Alguém sabe o que eu estou sentindo falta aqui? Até agora eu tentei definir:
set-option -g default-shell /bin/bash
set-option -g default-command /bin/bash
em .tmux.conf
, mas, até onde eu sei, isso não está funcionando.
(Isso foi testado em tmux 2.2
e tmux master
.)