【Linux】shell——传递参数

在传递参数方面,我们需要掌握几个常用的,通常是在编写shell脚本的时候进行使用。

$n

使用$n表示调取命令行的第n个参数,例如

输入:bash examle.sh 2  3 4

此时在脚本中,$1表示调取第一个参数即2。

几个需掌握的特殊参数

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

$* 与 $@ 区别

相同点:都是引用所有参数。

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

一道shell脚本练习一下

编写一个shell脚本,实现以下功能:

(1)要求用户输入正整数(随便多少个)

(2)计算前5个正整数的和,如果用户输入的不足5个,则计算所有输入的正整数的和。

#!/usr/bin/bash

a=0
sum=0

for i in $*
do
    sum=`expr $sum + i`
    a=`expr $a + 1`

if [ $a -eq 5 ]
then
    break
else
    continue
fi

done

echo result is $sum

这道题它是一个求和问题,并且是有条件的求和问题。

思路:先完成求和,再加条件限制

利用$*和for,进行对命令行参数的遍历。sum记录和,a记录参数的个数。如何利用if判断是否到了第五个,完成答题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值