为什么要使用命令行参数

Why should I use command-line arguments?

本文关键字:命令行 参数 为什么      更新时间:2023-10-16

我最近学习了命令行参数,并了解如何使用它们。但我只是不明白为什么我应该使用它们。我的意思是,您可以使用任何普通变量来执行与命令行参数相同的工作。

有人可以解释或给出命令行参数如何对程序至关重要的场景吗?

edit myfile.txt

您始终可以制作编辑器来编辑一个特定文件,但是如果用户能够告诉您他要编辑哪个文件,则会更有意义。 命令行参数是执行此操作的一种方法。

命令行参数的目的是允许您将信息传递到程序中,而无需将其硬编码到程序中。例如

Foo -pages:10
Foo -pages:20

在这里,我们已将信息传递到程序中(在本例中为pages设置)。如果你在程序中设置了一个变量,每次你想要改变它时都必须重新编译它!

这意味着您不必编辑程序即可更改其中的某些内容。

假设您的程序处理文件夹中的所有文件以删除图标预览。您可以对要在程序中处理的文件夹进行硬编码。或者,您可以将其指定为命令行参数。

使用这个例子是因为它描述了我在家里的 Mac 上使用的 bash 脚本。

自动化

如果您需要交互式用户输入,则无法在无外设(或无人)环境中编写脚本或使用应用程序/工具。

您可以使用"配置文件"并从临时文件写入和读取,但这很快就会变得很麻烦。

驱动应用程序

几乎每个非平凡的应用程序在做什么或如何做某事方面都有一些变化;可以而且必须应用某种程度的控制。与函数类似,接受参数是很自然的。

命令行

是一个自然而直观的环境,支持和使用命令行可以更好、更轻松地采用应用程序(或工具)。

当然可以使用 GUI,但除非您的计划支持 GUI 环境并且支持通过 GUI 输入,否则命令行是必需的。

考虑 echo ,它重复了它的参数——没有它们,它几乎无法工作。

或者tar - 如果没有命令行参数,它如何判断是否提取、创建、解压缩、列出等?

git ,具有拉取,推送,合并,分支,结帐,获取等选项...

或者字面上的任何UNIX程序,除了truefalse(尽管这些版本的GNU版本确实需要参数)。

将参数传递给main的应用程序数不胜数。例如,假设您是一名开发人员,并且您设计了一个用于处理图像的应用程序。普通用户只需将图像的名称传递给您的应用程序进行处理。应用程序的实际源文件对他们不可用,或者他们可能不是程序员。