2013-03-05 52 views
0

我为我的.bashrc创建了一个git仓库,我从本地机器和远程机器上获取。我想为本地主机运行一些命令,而不是为远程主机运行一些命令。如何在我的.bashrc中找到我所在的主机?

+0

'hostname'或'uname -n'命令可能会起作用。我在我的启动脚本中使用'uname -n'(但不是'.bashrc';我认为运行命令太重了;那些在我的配置文件中)。 – 2013-03-05 04:40:10

+0

如何在我的'hostname'上做字符串比较? – 2013-03-05 04:41:35

+0

'if [$(hostname)=“host1”];然后...... host1的东西......; fi' – 2013-03-05 04:48:00

回答

1

这为我工作:

HOSTNAME=$(hostname) 
if [ ${HOSTNAME} == "ros-mbp.local" ]; then 
    echo "host is local" 
elif [ ${HOSTNAME} == "dev843.prn1.facebook.com" ]; then 
    echo "host is remote" 
else 
    echo "host doesn't match." 
fi 
0

对于一个更通用的解决方案,其中:

  • 工作在两个bash和SH
  • 支持file pattern matching的主机名

你可以用这个成语:

#!/bin/bash 
HOST=`hostname` 
case "$HOST" in 
    # examples of prefix matches: 
    host1*) echo this matches host1 ;; 
    host2*) echo this matches host2 ;; 
    # and so on... 

    # if none matched you use the default '*' pattern 
    # which matches everything else 
    *)  echo none matched: hostname is $HOST ;; 
esac 
0

由于您特别询问了.bashrc,我是否可以假定您正在使用bashbash已自动设置参数HOSTNAME

相关问题