各种语言执行入口的传参方法

简介:

在操作系统中,执行程序时可以由系统传入参数,就是在执行的时候,附带上参数。比如:

1 ping www.kryptosx.info

后面跟着的网址就是ping的参数。

Linux和windows的shell都遵循这个参数传入方式。这里列一下各种语言的执行入口传参方法。主要分为两类,一种是有main函数的语言,一种是没有main函数的。

在执行命令的时候,linux系统会先对命令行进行分解通常是以空格分解,如果有双引号,双引号内的也是认为是一个参数,无论里面有无空格。

C类语言的执行入口传参:

C类语言包括C和C++语言,他们的传参方式一样。都是在main函数中。C/C++语言中的main函数可以携带参数,只是我们平常不用。

1 int main(int argc, char** argv)
2 int main(int argc, char* argv[])

argc  是指命令行输入参数的个数(以空白符分隔),程序名也是包含在内的。

argv  是一个指向字符串数组的指针。

c/c++main函数传参示例程序:

01 #include <stdio.h>
02 int main(int argc, char ** argv)
03 {
04     printf("argc: %d\n",argc);
05     int i;
06     for (i=0; i < argc; i++)
07         printf("argv[%d] is %s\n", i, argv[i]);
08     getchar();
09     return 0;
10 }

 c/c++main函数传参的执行:

1 play.exe a b c d "hello sir"
2 argc: 6
3 argv[0] is play.exe
4 argv[1] is a
5 argv[2] is b
6 argv[3] is c
7 argv[4] is d
8 argv[5] is hello sir

可以看出,传给argv的字符串中,argc是整个输入的命令被分解的段数(注意双引号)。

Shell脚本的执行入口传参:

shell脚本是没有main函数的,它是个解释性语言。但是我们也可以在运行时对其传参。相对C语言而言,更为简单。

shell是使用系统定义的位置变量。引用脚本参数时,可以使用$1到$9这9个变量。还有一个特殊点的变量是$*,它输出所有参数(不包括程序名)。

shell脚本传参的示例程序:

1 #!/bin/bash
2 echo "\$* is "$*
3 echo "\$0 is "$0
4 echo "\$1 is "$1
5 echo "\$2 is "$2
6 echo "\$3 is "$3
7 echo "\$4 is "$4

shell脚本传参示例的执行:

1 bash hello.sh 1 2 3 4
2 $* is 1 2 3 4
3 $0 is hello.sh
4 $1 is 1
5 $2 is 2
6 $3 is 3
7 $4 is 4

 Python脚本的执行入口传参:

Python是一个介于shell和C/C++之间的语言,它的执行入口传参有二者的特点。和shell一样python也是没有main函数的,但是python和c/c++类似有一个argv变量。python要传参还需要一个sys模块。

  • 需要模块:sys
  • 参数个数:len(sys.argv)
  • 脚本名: sys.argv[0]
  • 参数1: sys.argv[1]
  • 参数2: sys.argv[2]
  • ………..

python脚本传参示例:

1 #coding=utf-8
2 import sys
3 print "sys.argv[0] is ", sys.argv[0]
4 for in range(1len(sys.argv)):
5     print "sys.argv["+str(i)+"] is ", sys.argv[i]

 python脚本传参示例的执行:

1 python hello.py 2324 3 2 3 "sads sdaf"
2 sys.argv[0] is  hello.py
3 sys.argv[1] is  2324
4 sys.argv[2] is  3
5 sys.argv[3] is  2
6 sys.argv[4] is  3
7 sys.argv[5] is  sads sdaf

转载请注明:旅途@KryptosX » 各种语言执行入口的传参方法

目录
相关文章
|
6月前
|
存储 C语言
C 语言函数完全指南:创建、调用、参数传递、返回值解析
函数是一段代码块,只有在被调用时才会运行。 您可以将数据(称为参数)传递给函数。 函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用。
180 3
|
6月前
|
前端开发 Python
前端知识(十七)——入口函数和特定函数的区别
前端知识(十七)——入口函数和特定函数的区别
56 0
|
1月前
学习使用如何调用外部函数
学习使用如何调用外部函数
31 8
|
23天前
|
存储 小程序 JavaScript
小程序中页面传参的方式你都知道吗
小程序中页面传参的方式你都知道吗
33 0
|
6月前
|
Python
Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。
【5月更文挑战第11天】Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。在函数内部修改全局变量需用`global`关键字声明,否则会创建新局部变量。
144 2
|
6月前
|
Python
入口函数和特定函数的区别
入口函数和特定函数的区别
|
6月前
|
JavaScript 前端开发
js函数:函数是JS的基本组成单元,用于封装代码块以实现特定功能。理解函数的定义、调用和参数传递方式非常重要。具体案例详解
js函数:函数是JS的基本组成单元,用于封装代码块以实现特定功能。理解函数的定义、调用和参数传递方式非常重要。具体案例详解
61 1
|
6月前
|
JavaScript 前端开发
函数:函数是JS的基本组成单元,用于封装代码块以实现特定功能。理解函数的定义、调用和参数传递方式非常重要。
函数:函数是JS的基本组成单元,用于封装代码块以实现特定功能。理解函数的定义、调用和参数传递方式非常重要。
57 0
|
C语言
c 语言 无参无返函数,函数的调用
函数:c语言模块编程的核心语法。 作用:将代码按照功能划分为一段一段的独立的代码,有利于代码的管理,调试,维护。
123 1
|
Dart 前端开发 JavaScript
dart中将方法当做参数传递时的注意事项
众所周知,Dart是一门面向对象的语言,比Java更纯粹,Dart中的方法也是对象,也有类型Function。这意味着方法可以被分配给对象,也可以当做参数传递给其他方法。