我有几台 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 它。