linux中cd 破折号,何时以及如何在Unix / Linux中引入双破折号(-)作为选项定界符的结尾?...
发布日期:2021-10-23 03:55:40 浏览次数:0 分类:技术文章

本文共 1536 字,大约阅读时间需要 5 分钟。

据我所知,使用--的结束选项-标记开头sh,并getopt在系统III UNIX(1980)。

根据Bourne Shell家族的历史,Bourne Shell 首次出现在Unix 7版(1979年)中。但它没有一种方式set,以从分隔参数选项。因此原始的Bourne外壳可以做到:

set -e -打开错误退出模式

set arg1 arg2 ...-设置位置参数$1=arg1,$2=arg2等等。

但是:set arg1 -e arg2会给您$1=arg1,$2=arg2然后打开错误退出。哎呀

System III Unix(1980)修复了该错误,并进行了介绍getopt。根据getopt的手册页:

NAME

getopt - parse command options

SYNOPSIS

set -- `getopt optstring $∗`

DESCRIPTION

Getopt is used to break up options in command lines for easy parsing by

shell procedures, and to check for legal options. Optstring is a

string of recognized option letters (see getopt(3C)); if a letter is

followed by a colon, the option is expected to have an argument which

may or may not be separated from it by white space. The special option

-- is used to delimit the end of the options. Getopt will place -- in

the arguments at the end of the options, or recognize it if used

explicitly. The shell arguments ($1 $2 . . .) are reset so that each

option is preceded by a - and in its own shell argument; each option

argument is also in its own shell argument.

据我所知,这是它出现的第一位。

从那里开始,似乎其他命令都采用了--约定来解决参数解析歧义的问题(例如上面touch和rm您在上面引用的示例)在整个1980年代疯狂,无标准的日子。

其中一些零星采用的方法已在POSIX.1(1988)中进行了编纂,这是关于“ POSIX必需的合并”的变更日志注释的来源。

但是直到POSIX.2(1992)才采用实用程序语法准则,其中包含著名的准则10:

Guideline 10: The argument "--" should be accepted as a delimiter

indicating the end of options. Any following

arguments should be treated as operands, even if they

begin with the '-' character. The "--" argument

should not be used as an option or as an operand.

这就是从“ being脚”到普遍推荐的地步。

转载地址:https://blog.csdn.net/weixin_30496999/article/details/117130505 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c语言int mark,C语言考前冲刺题
下一篇:c语言开题报告中的文件与格式,大学论文开题报告格式要求.docx

发表评论

最新留言

初次前来,多多关照!
[***.238.104.143]2022年07月07日 15时44分49秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

chrome快捷键总结 2019-12-05 06:39:24
关于一个内存泄露的问题 2019-12-05 06:39:25
linux系统备份以及自定义liveCD的制作 2019-12-05 06:39:25
关于字体编码 2019-12-05 06:39:25
python 首页探秘(高级编程技术week1-1) 2019-12-05 06:39:25
浅谈构造函数和析构函数 2019-12-05 06:39:23
继续实现Vector类 2019-12-05 06:39:23
浅谈运算符重载与友元函数 2019-12-05 06:39:23
关于传值传引用,const的使用 2019-12-05 06:39:23
linux 入门 2019-12-05 06:39:24
gcc总结 2019-12-05 06:39:24
gbd调试总结 2019-12-05 06:39:24
简单I/O 与数据表示 2019-12-05 06:39:22
C++中的内存分配 2019-12-05 06:39:22
C++中的新特性:引用 2019-12-05 06:39:22
C++中的函数新特性 2019-12-05 06:39:22
稍微深入函数模板 2019-12-05 06:39:23
名称空间与作用域 2019-12-05 06:39:23
类与对象初步 2019-12-05 06:39:23
docker搭建cerebro(elasticsearch监控工具) 2019-12-05 06:39:20