2013-03-05 51 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

相關問題