如何在Solaris系统中查看/bin/sh的版本?
如何查看/bin/sh的版本(当它不支持-version选项时)
当/bin/sh不支持-version选项时,可以通过以下几种方法尝试获取它的版本信息:
1. 检查/bin/sh的实际指向
先确认/bin/sh是否是某个已知shell的软链接:
ls -l /bin/sh
如果它指向bash、ksh等shell,那么对应shell的版本就是/bin/sh的版本。比如如果链接到bash,那/bin/bash -version的输出就是它的版本。
2. 利用shell内置版本变量
不同shell有专属的版本环境变量,你可以尝试在/bin/sh中执行以下命令:
- 若是ksh或其变种(Solaris环境中较为常见):
/bin/sh -c 'echo ${.sh.version}' # 或 /bin/sh -c 'echo $KSH_VERSION' - 若是以bash兼容模式启动的sh:
/bin/sh -c 'echo $BASH_VERSION' - 若是zsh:
/bin/sh -c 'echo $ZSH_VERSION'
3. 从可执行文件中提取版本字符串
用strings命令从/bin/sh的可执行文件里过滤版本相关内容:
strings /bin/sh | grep -E '(version|Release|Copyright)'
部分shell的可执行文件中会嵌入版本、版权等信息,能从中找到有用内容。
4. 查看系统手册
执行man sh,手册中通常会明确标注该shell的版本信息及特性说明。
你当前环境下的命令执行结果:
$ /bin/bash -version GNU bash, version 3.2.57(1)-release (i386-pc-solaris2.10) Copyright (C) 2007 Free Software Foundation, Inc. $ /bin/sh -version -version: bad option(s) $ file /bin/sh /bin/sh: ELF 32-bit LSB executable 80386 Version 1, dynamically linked, stripped
内容的提问来源于stack exchange,提问作者Zippon
相关产品推荐
相关产品推荐

