如何让.bashrc知道当前的操作系统

如何让.bashrc知道当前的操作系统

我有几台 Linux 计算机共享一个磁盘和一个主文件夹。

那是在磁盘上,有主文件夹:\home\wuciawe

对于操作系统为 Centos 的计算机 A,它将加载\home\wuciawe\.bashrc

对于操作系统为 Ubuntu 的计算机 B,它将加载\home\wuciawe\.bashrc,与计算机 A 相同。

因为我不是管理员,所以我在 Ubuntu 本地构建并安装了一些软件,并在 中的 Path 中添加了一些内容\home\wuciawe\.bashrc

由于某种原因,Path中添加的一些内容与Centos产生了矛盾。

我想知道是否有办法让.bashrc 知道当前系统,请执行以下操作:

if os is Ubuntu:
  Path = xxx:$PATH
  export PATH
endif

答案1

Ubuntu

if grep -i Ubuntu /etc/lsb-release &>/dev/null
then
  export PATH=xxx:$PATH
fi

笔记

  • 在 shell 中,语句末尾没有冒号if

  • 在 shell 中,您不希望在赋值语句中的等号两边有空格。

  • 在 shell 中,语句以语句if结尾fi

CentOS

CentOS 有一个类似的解决方案:

if grep -i CentOS /etc/centos-release &>/dev/null
then
  export PATH=xxx:$PATH
fi

答案2

您可以尝试在/etc/issue文件中查找操作系统名称。该文件的内容用于getty显示登录前消息。从手册页中issue(5)

/etc/issue 文件是一个文本文件,其中包含要在登录提示之前打印的消息或系统标识。如果系统上使用的 getty 类型程序支持,它可能包含各种 @char 和 \char 序列。

请参阅@John2014 的帖子,了解如何在 shell 脚本中 grep 它。

相关内容