Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎样才能找到我';我在我的.bashrc里?_Bash - Fatal编程技术网

我怎样才能找到我';我在我的.bashrc里?

我怎样才能找到我';我在我的.bashrc里?,bash,Bash,我已经为我的.bashrc创建了一个git存储库,我从本地机器和远程机器中提取它。我想为本地主机而不是远程主机运行一些命令。这对我很有效: 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

我已经为我的.bashrc创建了一个git存储库,我从本地机器和远程机器中提取它。我想为本地主机而不是远程主机运行一些命令。

这对我很有效:

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

对于更通用的解决方案,该解决方案:

  • 可以在bash和sh中使用
  • 支持主机名的
    文件模式匹配
你可以用这个成语:

#!/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

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

主机名
HOSTNAME
uname-n
命令可能会工作。我在我的启动脚本中使用
uname-n
(但不是
.bashrc
;我认为在其中运行命令太繁重了;这些命令在我的配置文件中)。如何对我的
hostname
进行字符串比较;然后…host1的东西。。。;fi