Shell命令行参数

Shell命令行参数教程

运行 Shell 脚本文件时我们可以给它传递一些参数,这些参数在脚本文件内部可以使用 $n 的形式来接收,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。

同样,在调用函数时也可以传递参数。Shell 函数参数的传递和其它编程语言不同,没有所谓的形参和实参,在定义函数时也不用指明参数的名字和数目。换句话说,定义 Shell 函数时不能带参数,但是在调用函数时却可以传递参数,这些传递进来的参数,在函数内部就也使用 $n 的形式接收,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。

这种通过 $n 的形式来接收的参数,在 Shell 中称为位置参数。

Shell脚本传递参数

说明

我们在运行脚本时,可以给脚本传递参数,在脚本中要访问这些参数,我们可以使用 $n 的形式。

案例

我们首先,打开一个 Shell,并新建一个 Shell 脚本,具体代码如下:

#!/bin/bash echo "Name: $1" echo "Url: $2"

现在,我们运行该脚本,并传递参数,具体命令如下:

sh hellohaicoder.sh haicoder www.haicoder.net

运行后,终端输出如下:

20_Shell脚本传递参数.png

我们看到,我们在程序里面正确获取到了外面传入进来的参数的值。

细节

需要强调的是,全局变量的作用范围是当前的 Shell 会话,而不是当前的 Shell 脚本文件,它们是不同的概念。打开一个 Shell 窗口就创建了一个 Shell 会话,打开多个 Shell 窗口就创建了多个 Shell 会话,每个 Shell 会话都是独立的进程,拥有不同的进程 ID。在一个 Shell 会话中,可以执行多个 Shell 脚本文件,此时全局变量在这些脚本文件中都有效。

Shell命令行参数总结

运行 Shell 脚本文件时我们可以给它传递一些参数,这些参数在脚本文件内部可以使用 $n 的形式来接收,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。