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
。)