当我通过文本控制台登录 Ubuntu 时,我可以看到一个/bin/login
进程是我的 shell 的父进程。 login
运行如下:/bin/login -p --
. 这可以在下面看到:
$ ps -f -C login
UID PID PPID C STIME TTY TIME CMD
root 780 1 0 Apr27 tty2 00:00:00 /bin/login -p --
我的问题是,最后一个--
论点的意义是什么?手册页中未记录此参数login
。
其他答案已经描述了
--
意味着什么(选项处理结束)。在这里,我将尝试回答它是如何以及为什么在基于 TTY 的/bin/login
过程中出现的。具体来说,如果您查看该
[Service]
部分,/lib/systemd/system/[email protected]
您应该会看到以下ExecStart
行:添加的原因
--
记录在man agetty
:由于我不能将其标记为非 AksUbuntu 堆栈交换站点的副本…… 我无耻地复制了这个答案。
在
man bash
我们可以阅读Shell 内置命令部分:还
--
更准确地说,在大多数 bash 内置命令和许多其他命令中使用双破折号 ( ) 来表示命令选项的结束,之后只接受位置参数。使用示例:假设您要 grep 字符串的文件
-v
- 通常-v
将被视为反转匹配含义的选项(仅显示不匹配的行),但--
您可以像这样 grep 字符串-v
: