我正在尝试为一些机器写出动态bash配置文件,并且想知道是否有一个允许.bashrc
的变量,如果它是远程访问的话。我已经看过一些使用X变量的例子,但这与两台机器无关。
答案 0 :(得分:12)
if [ "$SSH_CONNECTION" ]; then
echo I am remote
else
echo I am local
fi
答案 1 :(得分:1)
当你通过ssh连接时,你的bash进程是sshd的子进程($ PPID是bash的父进程的变量 - ssh,如果你远程连接的话)。你可以检查一下:
if ps ax | grep ^$PPID'.*sshd' &> /dev/null; then
# do your stuff
fi
编辑:我很无聊并使用time
来获取执行时间,并发现这个版本显然快了几毫秒:
if grep ^sshd: /proc/$PPID/cmdline &> /dev/null; then
# do your stuff
fi