CygwinとTmuxはシェルを実行します。

CygwinとTmuxはシェルを実行します。

CygwinTmuxコマンドを使用すると、少し奇妙な問題が発生しましたrun-shell

与えられたスクリプト:

#!/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")

bash()を使用して直接実行すると、次のbash ~/test_script.shものが生成されます。

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.

これを実行しようとすると、次のような結果tmux run-shell test_script.shが表示されます。

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

2番目のループがBashismであることがわかっているので、TmuxがBashを正しく使用していることを確認するためのいくつかの構成がありません。私がここで何を見逃しているのか知っている人はいますか?今まで設定しようとしました。

set-option -g default-shell /bin/bash
set-option -g default-command /bin/bash

しかし、.tmux.conf私が知っている限り、これはうまくいきません。

(これはtmux 2.2およびでテストされましたtmux master。)

関連情報