shell编程(四)

shell中的数值处理

Linux中bash的变量值是以字符串的形式存储的,所以如果想当作数字使用的话需要进行转换.(前面已经用到了一些,但没有系统的总结)
此外,Shell中所有的算术运算都被当作整数运算,所以在有浮点数参与时要特别处理

let

计算算式的值,使用shell变量的值的时候不用$

#! /bin/bash
x=5 y=6
let t=x*y
echo $t
#运行结果为11

$((expression))

用于计算expression的值

expr

expr args

将它的参数当作表达式求值, 这里注意参数间的空格
例如

a =$(expr $x+1)
或
a=`expr $x+1`

args可以是数值计算也可以是逻辑判断

#! /bin/bash
a=5
b=6
expr  $a \> $b
#判断式为真则输1, 否则输出0

shell中的数组

声明方式

#一
array_name[num]=value
array[1]="Hello"
array[2]="Giao"
#二
array=(value1 value2 [num]=value)
array=(Hello  Giao [4]=World)
#三
declare -a arr=(1 2 3 4) 



#输出所有的非空元素
${array_name [*]}

#输出已赋值的元素个数(空也算)
${#array_name [@]}
#或
${#array_name [*]}
#key对应的元素长度
${#array_name[key]}

具体如下图
alt="数组元素长度"

shell中数组的删除方式

declare -a arr=(1 2 3)#声明arr数组
unset arr[0]#删除arr的第零个元素
unset arr#删除数组arr

shell数组的复制

因为要复制全部元素,参照上面就知道需要用到arr[*]arr[@]了,在前面的演示中,知道他们都可以表示全部元素.而它们的区别也类似于$*与$@加不加双引号的区别了.

首先b=${arr[*}就是表示将a复制给b.

同样的b都会得到a的全部元素, 而如果加上双引号变成b=${"arr[*]"}的话, 无论a中有多少元素, 都将被看做一个元素复制给b, 也就是说b只有一个元素.

shell函数

func_name(pare)
{
 	comamand_list
}

在函数体内声明的局部变量需要用local修饰, 表明那是局部变量, 局部变量在函数调用结束后销毁.




Here!

shell中的shift命令: 将脚本传入的参数左移一位, 即: 原来的让第n+1位参数变成第n位

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值