Shell编程及常用命令(二)--参数传递

六、shell参数传递

1、命令行参数

在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$nn 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

$0 为执行的文件名,示例"test.sh":

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

设置权限并执行脚本的结果为

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

2、用来处理参数的其它几个特殊字符

参数处理说明
$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数。
如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$脚本运行的当前进程ID号
$!后台运行的最后一个进程的ID号
$@与$*相同,但是使用时加引号,并在引号中返回每个参数。
如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$-显示Shell使用的当前选项,与set命令功能相同。
$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

示例"test1.sh"

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

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

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

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3

$* 与 $@ 区别:

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

$*与$@区别示例:

#!/bin/bash
# $*与$@的区别
echo "-- \$* 演示 ---"
for i in "$*"; do
    echo $i
done

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

执行脚本,输出结果如下

$ chmod +x test.sh 
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Shell脚本编程是一项非常实用的技能,能够帮助我们自动化很多日常操作,提高工作效率。以下是一些关于Shell脚本编程的技巧: 1. 善用变量:在Shell脚本中,变量能够帮助我们简化代码,提高可读性和可维护性,同时也能够提高脚本的灵活性。在使用变量时需要注意命名规范,勿使用系统保留关键字。 2. 正确处理命令行参数:在Shell脚本中,传递命令行参数是非常普遍的。处理命令行参数时,需要对参数进行校验和处理,避免可能的错误。可以使用getopts或者shift命令来处理命令行参数。 3. 控制流操作:控制流操作在Shell脚本编程中扮演着重要的角色。可以使用if、for、while等关键字对程序进行控制。 4. 使用函数:函数是组织代码、提高可复用性的重要手段。在Shell脚本中,定义函数需要注意参数传递和返回值处理。 5. 错误处理:错误处理对于Shell脚本编程尤为重要。可以在代码中通过trap命令、bash -e等方式对错误进行捕获并进行处理,使程序更加健壮和安全。 6. 善用管道和重定向:Shell脚本中的管道和重定向功能非常强大,可以让我们实现很多高级操作。可以使用“|”符号将多个命令进行组合,也可以使用重定向符号“>”、“>>”等将输出结果保存到文件中。 以上是一些关于Shell脚本编程的技巧。当然,实际编程中需要注意代码的可读性、可维护性和易用性,将优秀的编程习惯应用到Shell脚本编程中,才能写出质量高、易于维护的脚本代码。 ### 回答2: shell脚本编程技巧主要包括以下方面: 1. 变量的使用 在shell脚本编程中,变量是非常重要的,可以用于存储和操作数据。在使用变量时,应该注意命名规范,使用大写字母来表示常量,而使用小写字母来表示变量。此外,还应该注意变量的作用域问题,尽量使用局部变量,使程序结构更加清晰易懂。 2. 条件语句 条件语句是shell脚本中用于判断某个条件是否成立的关键词,常用的条件语句包括if、elif和else。在使用条件语句时,应该注意条件的书写方式,尽量使用简单易懂的语句。 3. 循环语句 循环语句是shell脚本中用于重复执行某个指令的关键词,常用的循环语句包括for和while。在使用循环语句时,应该注意循环的顺序、循环的范围和循环的结束条件。 4. 函数的使用 函数是shell脚本中用于封装一些常用代码的关键词,可以节省代码的重复编写。在使用函数时,应该注意函数的参数传递、返回值的处理和函数的命名规范。 5. 错误处理 在编写shell脚本时,必须考虑到错误的处理,比如输入错误的参数、文件不存在等问题。错误处理的方式可以使用if语句和return语句等方式,尽量提供清晰明了的错误提示信息。 总之,在编写shell脚本时,应该遵循良好的编码习惯,注重程序的可读性和可维护性,同时也应该不断学习和积累经验,提高自己的编程技巧。 ### 回答3: Shell脚本编程技巧是在Linux系统中实现自动化操作和任务的关键。以下是一些Shell脚本编程技巧: 1. 调试技巧:在Shell脚本中调试非常重要,可以使用set-x选项打开跟踪功能,以便检查脚本中出现的问题。 2. 错误处理技巧:在Shell脚本中,应该考虑在整个脚本中添加错误处理功能,以便可以在发生错误时采取适当的措施。 3. 命令参数技巧:Shell脚本可以从命令行参数中读取输入,可以使用$符号从命令行读取参数。 4. 文件处理技巧:Shell脚本中可以使用文件系统函数,如cat、echo、grep、sed、awk等,以对文件进行各种操作。 5. 字符串处理技巧:Shell脚本可以使用字符串处理函数,如${#str},${str:0:5}等,以进行常见的字符串操作。 6. 数组技巧:在Shell脚本中,可以使用数组来存储和处理多个值。 7. 正则表达式技巧:正则表达式是Shell脚本编程的一个重要组成部分,可以在Shell中使用多种正则表达式操作,如grep、awk等。 总之,熟悉这些Shell脚本编程技巧是非常有用的,在Linux系统和其他Unix操作系统中实现自动化操作和任务方面非常方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

auspark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值