Shell Script(八):参数传递

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

       在 Linux 命令行中使用命令时经常会跟上一些参数,这里就来介绍一下如何使 Shell 脚本可以接收命令行中的参数。
       脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 特别地, $0 为执行的脚本文件的文件名。通过实例演示一下,脚本文件的名字是 test.sh ,脚本内容如下:

#!/bin/bash
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

然后在命令行中执行如下命令:

./test.sh good hi hello

随后可以得到如下的结果:

执行的文件名:./test.sh
第一个参数为:good
第二个参数为:hi
第三个参数为:hello

       除此之外,还有一些和参数传递相关的符号,这里介绍一下其中的 $# 、$*、 $@三种符号 。
       1、$# 的作用:用来获取传递到脚本的参数个数
       2、$*的作用:以一个单字符串显示所有向脚本传递的参数。
       3、与 $* 相同,但是使用时加引号,并在引号中返回每个参数。
       下面通过一个实例来演示一下:

#!/bin/bash
echo "Shell 传递参数实例!";
echo "第一个参数为:$1";

echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";

然后在命令行中执行如下命令:

./test.sh 1 2 3

得到的结果如下:

第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3

       下面通过实例来区分一下 @ ,脚本内容如下:

#!/bin/bash
echo "-- \$* 演示 ---"
for i in "$*"; do
    echo $i
done

echo "-- \$@ 演示 ---"
for i in "$@"; do
    echo $i
done

然后在命令行输入如下命令:

./test.sh 1 2 3

执行结果如下:

-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3

相关文档

http://www.runoob.com/linux/linux-shell-passing-arguments.html

上一篇:Shell Script(七):循环(for, while, until)
下一篇:python3 通过 pymysql 操作 mysql 数据库

你可能感兴趣的:(Shell Script(八):参数传递)