首页 百科知识 怎样在单个命令行中运行多个命令

怎样在单个命令行中运行多个命令

时间:2022-10-16 百科知识 版权反馈
【摘要】:“命令行”就是为启动程序而在操作系统状态下输入的表示命令的字符行。此外,要建立程序项和命令菜单项等,也需要写出实际命令行,其中包括提供所需要的各个命令行参数。在程序启动后正式开始执行前,每个命令行参数被自动做成一个字符串,程序里可以按规定方式使用这些字符串,以接受和处理各个命令行参数。如果命令行中没有输入两个命令行实参,程序返回。

*6.7 命令行参数

要启动一个程序,基本方式是在操作系统命令状态下由键盘输入一个命令。操作系统根据命令名去查找相应的程序代码文件,将它装入内存并令其开始执行。“命令行”就是为启动程序而在操作系统状态下输入的表示命令的字符行。

例如,在常见微机系统中,如果源程序文件名是test.c,经过编译通常产生出名为test.exe的可执行程序文件,在命令状态下输入命令行:

  test

就会执行test.c程序。

执行一个命令行时,所提供的命令行里往往不仅是命令名,可能还需要提供另外的信息,例如在DOS系统里,要用系统的编辑器编辑一个文件,可能输入

  edit file1. txt

带参数的命令行。在命令行中,edit是命令名,而文件名file1. txt就是命令的附加信息,即命令行的参数。

命令行参数在C语言程序中可以实现,处理这一类带参数的命令行时,可以有效地提高程序的运行效率。

目前许多操作系统采用图形用户界面,在要求执行程序时,常常不是通过命令行形式发出命令,而是通过点击图标或菜单项等。但实际的命令行仍然存在,它们存在于图标或菜单的定义中,例如,在许多系统里可以将某个文件拖到一个程序文件那里作为程序的启动参数,实际上这就是要求系统产生一个实现这种命令的命令行。此外,要建立程序项和命令菜单项等,也需要写出实际命令行,其中包括提供所需要的各个命令行参数。

经常在集成开发环境(IDE)里开发程序,程序的编辑、调试和执行等工作都可以在同一个环境里完成。集成开发环境都有专门的机制为启动命令行提供参数。提供命令行参数的另一种方法是转到开发环境之外,在操作系统的命令行状态下启动程序,例如启动一个命令式交互的窗口,在命令窗口里执行程序。

C程序通过main的参数获取命令行参数信息。实际上main可以有两个参数,常用argc、argv作为参数的名字(这两个参数也可以用其他名字),两个参数的类型是确定的。原型是int main(int argc, char *argv[ ])

argc的值为命令行参数的个数加1,argv为指针数组,数组元素是分别指向命令行中可执行文件名和各命令行参数字符串的指针。因此,argv[0]代表命令行中可执行程序名本身,argv[1]代表命令行中第一个参数的内容,依次类推。

例6-20 输出命令行参数的个数及参数的内容。

img437

将命令行的整个字符串分解为空格分隔的若干字段,第一个字段是命令名,其他每个字段代表一个命令行参数。在程序启动后正式开始执行前,每个命令行参数被自动做成一个字符串,程序里可以按规定方式使用这些字符串,以接受和处理各个命令行参数。

当一个用C 编写的程序被装入内存准备执行时,main的两个参数首先被自动进行初始化:argc 的值是命令行参数的个数加1;argv是字符指针数组,这个数组里共有argc个字符指针,分别指向命令行的参数(字符串)。

例如,命令行:

  prog1 there are five arguments

其中,prog1是命令名,其他4个是命令行的参数。main的参数情况如图6.7.1所示。

其中main的整型参数argc为5,argv是包含5个指针的字符指针数组,分别指向相应字符串。在main开始执行前自动完成argc和argv的初始化。函数main就可以通过argc和argv访问命令行的各个参数:由argc可得到命令行参数的个数,由argv可以访问命令行的各个参数(字符串)。通过argv[0]可以访问启动程序的命令名本身。

img438

图6.7.1 命令行参数情况

例6-21 显示课程名和上课时间的程序。

参考程序为:

img439

如果经编译、链接后的可运行程序为show_class_time.exe,则有

    c:\> show_class_time Monday Friday

运行结果:

    DATA STRUCTURE------- Monday

    OPERATING SYSTEM------- Friday

argv[0]指向串“show_class_time”,argv[1]指向第一个实参“Monday”,argv[2]指向第二个实参“Friday”。如果命令行中没有输入两个命令行实参,程序返回。exit(0)函数的功能是终止程序的运行,返回操作系统运行环境。

需要注意的是,命令行实参之间必须用空格分隔,不能用逗号和分号等符号分隔。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈