ls -a
(我考虑-a
一个选项)
sudo -u username
( -u
= 选项, username
= arg)
chmod 664 my-dir
( 664
= 选项, my-dir
= arg)
我想不出一个可能会说“这是一个标志”的例子,除非在查看目录列表时:
-r--------. 1 david david 3344 May 19 17:48 611056.pdf
Run Code Online (Sandbox Code Playgroud)
这为所有者设置了“读取标志”,仅此而已。是什么阻止我将其称为“阅读选项”?
我主要使用 DocBook XML 编写和编辑技术文档,我正在寻找差异的解释,尽可能一致和准确。但是,我已经看到了一种模式的形成:
setenforce 0
我可以看到自己组合了标志和选项(有些选项可能有十几个可能的值,但布尔值只有两个)。参数看起来足够不同以维持它们的原样。
Ant*_*hon 25
术语“选项”、“参数”和“标志”没有一致的定义,软件开发领域也没有可以强制使用它们的中央权威。这发生在很多术语中:在使用“目录”这个词 30 多年之后,我现在不得不处理那些使用“文件夹”这个词的人,他们被微软的新说法搞糊涂了。
术语的共识定义可以通过不同的方式在编程中出现。在“参数”/“选项”/“标志”的情况下,编程语言的规范手册和教程有助于强制使用,公共库中使用的术语也是如此。
例如,您在命令之后放在命令行上的内容通常称为命令的“参数”,类似于函数调用的参数,这可能部分是因为它们在 C 手册中被称为“参数”(因此argc
和argv
)。在argparse
Python库也有助于执行期限“的说法”。但是,我也看到它们被称为“参数”。
术语“选项”源自“可选”,这意味着它们可以被排除在外。在getopt
C库是一个使用这一术语。但是对于实际上不是可选的“选项”有先例:例如,argparse
手册指出可以创建“必需选项”(尽管它也说这是“通常被认为是不好的形式”)。选项前面通常有一个单 ( -
) 或双 ( --
, 长选项) 破折号,但有一些众所周知的命令不需要或强制使用破折号来选择选项(例如tar
,ps
、 和dd
)。一个选项本身可以接受一个参数(例如,-w80
和--color=always
),或者偶尔有多个参数。
根据我的经验,“标志”与选项相同,但通常本身不带参数,本质上代表布尔开关。
从更广泛的角度来看,由于每个程序员都可以选择尝试查找一些标准的做事方式和命名方式,但也可以在没有太多额外成本的情况下重新发明轮子,因此命名永远不会保持一致。一旦你记录了你的代码,并且很清楚你通过举例给这些词赋予了什么样的新含义,如果有足够多的人从你的代码中提取它们,这些名称和含义可能会保持不变。
Eze*_*nay 16
标志是一种选项,是布尔类型的选项,默认情况下总是假的(例如--verbose、--quiet、--all、--long 等)。
一个选项告诉函数如何操作(例如 -a、-l、--verbose、--output、-name、-c 等),而参数则告诉函数要对什么进行操作(例如*
,file1,主机名、数据库)。
归档时间: |
|
查看次数: |
41474 次 |
最近记录: |