为什么许多 CLI 应用程序采用“--”参数?

为什么许多 CLI 应用程序采用“--”参数?

我见过许多命令行工具采用“--”参数。例如:

gem install mysql -- —–with-mysql-config=/usr/local/mysql/bin/mysql_config

它代表什么?有什么特殊含义吗?

答案1

这意味着该工具应该停止将破折号视为选项字符。例如,假设您想在文件中搜索破折号字符:

grep -- - file

在您的示例中,这--是必要的,因为 gem 工具正在调用另一个工具,该工具也使用带破折号前缀的选项。

答案2

当一个程序需要使用长选项时,需要调用另一个也需要长选项的程序,这是常见的做法。它会向第一个程序发出信号,让其停止解析选项,并将其余选项原封不动地传递给它调用的子进程。

相关内容