the*_*sti 23 command-line parameter terminology command
在命令行中,我经常使用“简单”命令,例如
mv foo/bar baz/bar
Run Code Online (Sandbox Code Playgroud)
但我不知道如何称呼这一切:
?1? ???2????
git checkout master
? ???????3???????
????????4??????????
Run Code Online (Sandbox Code Playgroud)
我(认为我)知道1是命令,2是参数,我可能会称3为参数列表(对吗?)。
但是,我不知道该怎么称呼4。
如何标记更复杂的“命令”?
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
Run Code Online (Sandbox Code Playgroud)
我很感激一个答案,它分解了调用 1,2,3,4 的内容以及调用上面的“命令”的每个部分的内容。
了解其他我没有包括在这里的独特/令人惊讶的事情会很棒。
ImH*_*ere 33
各部分的通用名称如下:
?1? ???2????
git checkout master
? ???????3???????
????????4??????????
Run Code Online (Sandbox Code Playgroud)
命令名称(不是重定向或变量赋值的命令行的第一个单词或标记,并且在别名被扩展之后)。
命令的标记、单词或参数。从人bash:
word:被 shell 视为一个单元的字符序列。也称为令牌。
一般:参数
命令行。
两个带有 a 的简单命令的串联|
是管道序列或管道:
??1? ???????2??????? ??2?? ???2??? ???1???? ?2??2??2??????2?????? ?2? ?2?
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
? ?????????????3??????????????? ?????????????3???????????????
????????????????????????????????????4??????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
请注意,还有重定向和变量分配:
???5??? ?1? ??2?? ??2?? ????6??? ?1? ??5??
<infile tee file1 file2 | LC_ALL=C cat >file
??????????7???????????? ????????7?????????
??????????????????????4?????????????????????
Run Code Online (Sandbox Code Playgroud)
哪里(除了上面的数字):
这不是命令行可能具有的所有元素的详尽列表。这样的列表对于这个简短的回答来说太复杂了。
Att*_*igh 16
@isaac 上面的回答似乎不错。
我想用一些来源来扩展它。
我想POSIX 标准在某种意义上可能被认为是规范的。其他来源可能是man bash
和man proc
。
?1? ???2????
git checkout master
? ???????3???????
????????4??????????
Run Code Online (Sandbox Code Playgroud)
POSIX 建议:
man proc
使用命令行)它还具有许多更复杂命令的术语。
我认为命令非常含糊,所以也许术语命令名称和命令行是为了清晰起见。j