带参数的函数

1>位置参数

  在上节中,checkFileExiist.sh脚本中定义了checkFileExist函数,但是可以看到这个脚本实际上写死了FILE变量,这会造成想要判断不同的文件是否存在时,需要修改脚本中的FILE 变量——也就是要对代码本身的内容进行修改,这也是典型的代码和数据没有分开而导致的问题。事实上,可以通过定义带参数的函数解决这个问题。在shell中,向函数传递参数也是使用位置参数来实现的。

  使用带参数的函数修改之前的checkFileExist.sh脚本为checkFileExist_v2.sh,注意后面执行脚本时的传参方式。
这里写图片描述

执行脚本时,通过直接向脚本传递文件全路径的方式传递参数
以看到可这种方式不会因为测试文件的不一样而修改脚本本身的内容,非常简单

下面的例子可以接受两个参数:$1$2,该脚本将计算出$1$2次方的值。
这里写图片描述

计算2的2次方
这里写图片描述

计算3的3次方
这里写图片描述


2>指定位置参数值

  除了在脚本运行时给脚本传入位置参数外,还可以使用内置命令set命令给脚本指定位置参数的值(又叫重置)。一旦使用set设置了传入参数的值,脚本将忽略运行时传入的位置参数(实际上是被set命令重置了位置参数的值)。
这里写图片描述

运行结果如下
  给脚本传入参数 a b c d e f ,但是由于脚本运行时“重置”了位置参数的值所以打印出来的位置参数为脚本中设置的值
这里写图片描述


移动位置参数

  在shell中使用shift命令移动位置参数,shift命令可以让位置参数左移
一位,如下
这里写图片描述

运行结果
这里写图片描述

  可以在shift命令后跟上向左移动的位数,比如说shift2就是将位置参数整体向左移动两位,将上面的脚本修改一下后,运行结果如下:
  如果将shift_03.sh脚本中的shift改为shift 2,则位置参数将会每次移动两位运行结果如下
这里写图片描述

  下面的例子是利用shift来计算脚本中所有参数的和。
这里写图片描述

执行结果
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值