我在不同的机器上工作,有些是centos7
,有些是centos6
,我在每种“类型”上构建一个不同版本的二进制文件,tmux
因为同一个版本不能同时运行。
我怎样才能告诉我根据我工作的盒子.bashrc
在版本之间切换?tmux
答案1
该命令uname -m
将告诉您所使用的架构。例如,在我的系统上:
$ uname -m
x86_64
我可能会建议将 archful 二进制文件放入~/bin/i686
和中~/bin/x86_64
。(或者,如果它是 32 位 Power 或其他东西,则uname -m
返回任何内容。)然后,在~/.bash_profile
(这是适合这个的地方,有这样一行:
PATH=$PATH:~/bin/$(uname -m)
这会将这个新的特定于 arch 的 bin 路径附加到您现有的路径中。
或者,如果您想要的是机器架构以外的其他信息,请使用不同的区分符。例如,判断 CentOS 版本的一个简单方法是查看软件包的版本centos-release
,使用rpm -q
,因此,如下所示:
PATH=$PATH:~/bin/centos$(rpm -q --qf '%{VERSION}' centos-release)
这会让你得到以下两种结果~/bin/centos6
之一~/bin/centos7
— — 尽管没有错误处理,所以在 Fedora 或其他平台上你会得到一个毫无意义的错误消息就在路上if
. (在运行此命令之前,也许需要用语句检查 centos-release 是否存在。)
您还可以添加--nosignatures --nodigest
以将此 RPM 命令加速百分之几秒。这不是什么大问题,但由于它会在每个新的登录 shell 上发生,所以似乎值得额外输入。