OS 在哪里获取 $OSTYPE 的值
Where does the OS take the value for $OSTYPE
我有一个依赖于 $OSTYPE
变量值的遗留脚本。该脚本期望的是,在 Solaris 上该值为 "SunOS",而在 AIX 上该值为 "AIX"。对于 Linux,它根据大写值以 "LINUX".
开头的正则表达式检查变量
我已经尝试 运行 Jenkins 的这个脚本,发现值不同:Solaris returns "solaris2.11" 而 AIX returns "aix7.1.0.0".我 运行 echo $OSTYPE
命令在 Jenkins 运行 脚本所在的完全相同的服务器上,我得到的是 "SunOS"/"AIX"。
所以我的主要问题是:这种差异的来源是什么(系统如何形成这个变量的值,以及为什么 Jenkins 的值不同于 echo 运行 from bash).一个附带的问题是使用 $OSTYPE
.
的可靠方法是什么?
变量OSTYPE
存储OSTYPE的值在shell变量中。这取决于 shell 它存储的值。
例如,如果您使用 bash
,您将获得 OSTYPE
变量的一个值,在 zsh
中,一些其他值,在 sh
中,您本身可能得不到任何价值。
请参阅下面使用 bash
和 zsh
的区别。
bash
$ echo $OSTYPE
darwin18
zsh
% echo $OSTYPE
darwin18.0
因此,当您获得 OSTYPE
的不同值时,您可能需要检查 shell jenkins
使用的是什么
最可靠的方法是使用命令:
uname
有不同的选择。你看到的结果只是命令uname
。如果您想了解有关版本、体系结构的更多详细信息,可以使用
uname -a
我有一个依赖于 $OSTYPE
变量值的遗留脚本。该脚本期望的是,在 Solaris 上该值为 "SunOS",而在 AIX 上该值为 "AIX"。对于 Linux,它根据大写值以 "LINUX".
我已经尝试 运行 Jenkins 的这个脚本,发现值不同:Solaris returns "solaris2.11" 而 AIX returns "aix7.1.0.0".我 运行 echo $OSTYPE
命令在 Jenkins 运行 脚本所在的完全相同的服务器上,我得到的是 "SunOS"/"AIX"。
所以我的主要问题是:这种差异的来源是什么(系统如何形成这个变量的值,以及为什么 Jenkins 的值不同于 echo 运行 from bash).一个附带的问题是使用 $OSTYPE
.
变量OSTYPE
存储OSTYPE的值在shell变量中。这取决于 shell 它存储的值。
例如,如果您使用 bash
,您将获得 OSTYPE
变量的一个值,在 zsh
中,一些其他值,在 sh
中,您本身可能得不到任何价值。
请参阅下面使用 bash
和 zsh
的区别。
bash
$ echo $OSTYPE
darwin18
zsh
% echo $OSTYPE
darwin18.0
因此,当您获得 OSTYPE
jenkins
使用的是什么
最可靠的方法是使用命令:
uname
有不同的选择。你看到的结果只是命令uname
。如果您想了解有关版本、体系结构的更多详细信息,可以使用
uname -a