在ps
Ubuntu 上的命令手册中有这样的文字:
此版本的 ps 接受多种选项:
Run Code Online (Sandbox Code Playgroud)1 UNIX options, which may be grouped and must be preceded by a dash. 2 BSD options, which may be grouped and must not be used with a dash. 3 GNU long options, which are preceded by two dashes.
为什么 Ubuntu 中内置的命令可能使用来自不同操作系统的选项?我知道Linux、UNIX和BSD的起源是一样的,但它们是不同的分支。
Marias-MacBook-Air:~ marias$ ls --help
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
Run Code Online (Sandbox Code Playgroud) 我bash
大部分时间都在使用,刚刚开始玩其他 shell。我开始dash
尝试找出它的版本号,但通常的方法如-v
或$version
不起作用。我可以理解这--version
不会起作用,因为这是 GNU 特定的。我在网上搜索,找到了以下答案,都是求助于包管理系统。
如何判断dash的版本号?(用户使用的是 CentOS,所以答案取决于 Redhat 包管理系统)
和
如何在 Ubuntu bin 上找到 dash shell 的版本?(这是来自 AskUbuntu 站点,所以答案取决于 Advanced Package Tool)
那么有dash
没有不借助包管理系统就可以查到版本的方法呢?如果没有简单的方法我会很惊讶,因为我一直认为查询软件版本是最基本的功能之一。如果真是这样,我很乐意听到一些解释,例如这种设计背后的哲学是什么。我很乐意接受一种dash
无需借助包管理系统即可获取版本的简单方法,或者接受令人信服的解释(从历史角度来看也可以),说明为什么我不能将其作为公认的答案。