我有以下脚本:
#!/usr/bin/env bash
# set -xv
tmux new-window -n 'foo' 'source "$HOME/.rvm/scripts/rvm"; sleep 123' \;
在一台机器上它完美运行,在第二台我遇到错误:
sh: 1: source: not found
来自shell的运行命令运行完美。 怎么了?机器有类似的点文件......
答案 0 :(得分:4)
source
不是POSIX命令。请改用.
。失败的计算机可能使用dash
作为系统shell,而不是bash
。 tmux
从 bash
脚本执行的事实并不意味着bash
用于执行给new-window
的命令。 tmux
将使用系统shell /bin/sh
,因此该命令不应依赖{POSO source
的{{1}}同义词等非POSIX功能。