Shell Script(八):参数传递
2019-03-10 本文已影响3人
蓝天白云bubble
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
在 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 数据库