我刚刚更新了 Cygwin,新的.bashrc
在顶部包含这一行:
echo "BEFORE TEST"
# If not running interactively, don't do anything
[[ "$-" != *i* ]] && return
echo "AFTER TEST"
Run Code Online (Sandbox Code Playgroud)
我明白如果不运行交互式,你不需要做任何事情,但我的问题是,如果我ssh
使用命令:
ssh localhost pwd
Run Code Online (Sandbox Code Playgroud)
我看到这个:
BEFORE TEST
Run Code Online (Sandbox Code Playgroud)
所以,很明显,它没有通过[[ "$-" != *i* ]]
测试并返回。显然ssh localhost pwd
是一个微不足道的例子,但我希望.bashrc
如果通过ssh
. 我的实际自动化针对这个 cygwin 实例远程运行命令并且失败,因为路径(由 my 设置.bashrc
)没有正确设置。
此外,任何人都可以解释该测试实际上在做什么吗?什么是i
?什么是$-
应该代表什么?