shell——变量、数学运算、数组

一.变量

1.    不需要在使用变量前声明其类型,只需赋值就可以,每个变量值都是字符串。

2.    查询某进程运行时的环境变量:

cat  /proc/$PID/environ   //PID为相关进程id

pgrep  应用程序//获取进程id

例如:pgrep vi 得到2553

     cat /proc/2553/environ

     cat  /proc/2553/environ | tr  ‘\0’  ‘\n’//每行显示一对kv

3.    区别变量名与指之间是否有空格

var=value   //无空格表示赋值

var = value //有空格表示判断是否相等

4.    取值符$

value=”hadoop”

echo  $value 或者 echo  ${value}

5.    环境变量是未在当前进程中定义,而是从父进程中继承而来的。

echo  $PATH

export  PATH=”$PATH:/home/user/bin”

6.    获取字符串长度:

Var=hadoop

length=${#var}

echo  $length

7.    获知当前shell版本

echo  $SHELL  或者 echo  $0

 

 

二.shell进行数学运算

1.使用let时,变量名前不需添加$

      let var1++

      let  var2+=5

2.使用[]

      Res =$[var1 + 32]   或者 res =$[$var2 + 43]

3.使用(())

      Res=$((var2 + 100))

以上方法只能使用于整数运算,不支持浮点数

4.数学计算高级工具bc

      echo 4*0.345 | bc

      echo  “scale=2;3/8”| bc ; 设定小数精度为2

      十进制转换二进制:

      no=100

      echo “obase=2;$no” |bc

   二进制转换十进制:

      var=1100100

      echo “obase=10;ibase=2;$var” |bc

   计算平方以及平方根

           echo “sqrt(100)” | bc

           echo “10^10” | bc

 

三.数组

1.bash支持普通数组和关联数组,普通数组只能使用整数作为数组索引,关联数组可以使用字符串作为数组索引。

2.数组的定义:array1={1 2 3 4 5 6}

array2[0]=”test1”

array2[1]=”test2”

3.打印数组值:

echo  ${arrar1[2]}

echo  ${array2[*]}

4.求数组长度

 echo  ${#array1[*]}

5.关联数组

(1)使用关联数组前需声明:

declare  -A  myarray

(2)例如:

declare  -A  fruits

fruits=([apple]=’100dollars’  [orange]=’200dollars’)

echo  “apple costs  ${fruits[apple]}”

3.列出数组索引

echo  ${!myarray[*]}  或者 echo ${!myarray[@]}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值