3 options parameter terminology arguments
位置参数($1、$2等)和选项(和/或参数)都直接写在命令之后,那么解释如何区分它们的定义或措辞是什么?
换句话说,如何正式解释位置参数和选项(和/或参数)之间的区别?
Kus*_*nda 13
选项(通常也称为“标志”或“开关”)是一种命令行参数。命令行参数是出现在实用程序或 shell 函数的命令行上的单个单词(或带引号的字符串)。
在使用一定数量的参数调用 shell 脚本或 shell 函数时,每个单独的参数都将作为脚本或函数内的位置参数可用。
术语:
“论据”可以是
-a,但前提是实用程序将其识别为选项),foo在-a foo如果-a是接受一个参数的选项),或foo在-a fooif-a中不采用选项参数)。以上所有的真实示例(使用 GNU mv):
mv -t targetdir -f file1 file2
Run Code Online (Sandbox Code Playgroud)
-t, targetdir, -f, file1, 和file2-t和-ftargetdirfile1和file2。从POSIX 定义:
[在] shell 命令语言中,参数是传递给实用程序的参数,相当于由 exec 函数之一创建的 argv 数组中的单个字符串。参数是命令名称后面的选项、选项参数或操作数之一。
[An option is an] 命令的参数,通常用于指定实用程序默认行为的更改。
[选项参数是] 跟随某些选项的参数。在某些情况下,选项参数包含在与选项相同的参数字符串中 - 在大多数情况下,它是下一个参数。
[操作数是]命令的参数,该命令通常用作向实用程序提供完成其处理所需的信息的对象。操作数通常遵循命令行中的选项。
shell 脚本或 shell 函数中的位置参数将是脚本或函数命令行上给出的参数,无论参数是选项、选项参数还是操作数。
位置参数也可以使用
set -- something "something else" bumblebees
Run Code Online (Sandbox Code Playgroud)
这会将$1,$2和$3设置为三个字符串并清除任何其他位置参数。
在这种情况下,位置参数不再与实用程序命令行上传递的参数有任何关系。
也可以看看: