3.Shell接收用户的参数

coding

1.Shell 传递参数

  我们可以在执行 Shell 脚本时,向脚本传递参数,Linux系统中的Shell脚本语言已经内设了用于接收参数的变量,变量之间可以使用空格间隔。

  例如$0对应的是当前Shell脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,

而$1、$2、$3……则分别对应着第N个位置的参数值,如图4-15所示

尝试编写一个脚本程序示例:

[root@linuxprobe ~]# vim example.sh

#!/bin/bash

echo"当前脚本名称为$0"

echo"总共有$#个参数,分别是$*。"

echo"第1个参数为$1,第5个为$5。"

[root@linuxprobe ~]# sh example.sh one two three four five six

当前脚本名称为example.sh

总共有6个参数,分别是one two three four five six。

第1个参数为one,第5个为five。

$* 与 $@ 区别:

  • 相同点:都是引用所有参数。
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

#!/bin/bash

# author:菜鸟教程

# url:www.runoob.com

echo"-- \$* 演示 ---"

for i in"$*"; do

echo $i

done

echo"-- \$@ 演示 ---"

for i in"$@"; do

echo $i

done

执行脚本,输出结果如下所示:

$ chmod +x test.sh

$ ./test.sh123

-- $* 演示 ---

123

-- $@ 演示 ---

1

2

3

 

以上是 3.Shell接收用户的参数 的全部内容, 来源链接: utcz.com/z/509659.html

回到顶部