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

你可能感兴趣的:(c,shell,String,脚本,测试)