Cygwin 和 Tmux 运行 shell

Cygwin 和 Tmux 运行 shell

Cygwin当我使用 Tmux 命令时,我遇到了一个有点奇怪的问题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

现在,我知道第二个循环是 Bashism,所以我可能错过了某种配置来确保 Tmux 正确使用 Bash。有人知道我在这里缺少什么吗?到目前为止我已经尝试设置:

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

.tmux.conf据我所知,这是行不通的。

(这已经在tmux 2.2和上进行了测试tmux master。)

相关内容