$ ssh t@localhost [[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive'
Interactive我想知道为什么上面的shell是交互式的,因为它有非选项参数,而且没有-s、-c或-i。
来自bash手册:
交互式shell是一个在没有非选项参数的情况下启动的shell,除非指定了-s,而没有指定-c选项,并且其输入和错误输出都连接到终端(由isatty(3)决定),或者使用-i选项启动。
谢谢。
发布于 2018-04-06 16:13:10
你没有执行你认为是的测试。$-的扩展是在执行ssh命令之前进行的。展示:
$ set -x
$ ssh home echo $-
+ ssh home echo himxBHs
himxBHs
$ ssh home 'echo $-'
+ ssh home 'echo $-'
hBchttps://unix.stackexchange.com/questions/436005
复制相似问题