shell参数传递

1.位置变量参数即可传入到脚本的参数,最多可以访问9个,比如 ./xxx.sh a b c d

其中 $0 是脚本名字  $1 是第一个参数 a  以此类推

 

2. 特殊参量

$#       传递到脚本的参数个数

$*       以一个单字符串显示所有向脚本传递的参数。与位置变量不同,可以超过9

$$       脚本运行的当前id

$!       后台运行的最后一个进程的进程id

$@      $#相同,但是使用时加引号,并在引号中返回每个参数

$-       显示shell使用的当前选型, set命令功能相同

$?       显示最后命令的退出状态

 

1.       向脚本传入参数

如果想输入更多的参数(超过9个)可以使用 shift 命令

作用:使参数位置向左偏移一位。

例子:

#!/bin/sh

loop=0

while[ $# -ne 0 ]

do

   echo $#

   echo $1

shift

done

2.       另一种经典的方式如下.

 getopts option_string variable

一般形式为:

while getopts abc: OPTION

do

        case $OPTION in

a)       ……

;;

b)………

;;

c)       VALUE=$OPTARG

………

;;

/?)………

;;

esac

………….

done

 

如果选项串前不加:则系统会给出错误提示,同时也会到/?处,如果想屏蔽掉系统提示则在选项串前加冒号,例如 :abc: 

 

expr用法

  1. 计算:expr 10 + 20 显示 30
  2. 增量计数:一般用在循环里。 LOOP=`expr $LOOP + 1`
  3. 数值测试。如果不是整数,则返回错误。

expr rr + 1

其也可以返回自身的退出状态,但是成功返回1.

测试两个字符串是否相等:

VALUE=hello

expr $VALUE = “hello”

1

echo $?

0

  1. 模式匹配。通过指定冒号 选项计算字符串中字符数  .*表示任何字符重复0次或多次

VALUE=accounts.doc

expr $VALUE : October 8, ‘.*’

12

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值