收藏文章 楼主

数组和运算awk计算符-shell基础1.4

版块:shell   类型:普通   作者:小绿叶技术博客   查看:867   回复:1   获赞:0   时间:2020-03-24 16:07:27

=======  数组  ======


a=(A B "C" D) # 定义多个数组

echo ${a[1]} # 打印数组中第一个角标的值


a[0]=A # 定义数组元素对应角标,数组第一个元素为A

a[1]=B

echo "数组元素为:${a[*]}" # 大括号为数组,中括号指定脚标为全部

# $a[*] 全部不换行;$a[@] 全部,要换行

# ${#a[*]}   获取元素个数


--------------  案例:

a=(1 2 3 4 5) # 定义数组:有这么多元素

aj=1    #初始化角标:开始为1

a=${a[aj]} # 定义变量a 为取得的元素

echo $a






========  运算符  ======

基本运算符:

+   -   *   /   %   =   ==    !=   # 加减乘除,取余,赋值,相等,不等于


-------------  乘方:

echo $[2**3] # 打印一个乘方变量

echo $((2**3))


echo 1 | awk '{print 20**3}' # 乘方的另一种方法

let "y=2**3" ; echo $y


-------------  次幂

awk 'BEGIN{printf 8^(1/3)}' # 3次根号8的的值为2

awk 'BEGIN{printf 8^3}' # 8的3次方为512

1/3     1/3   1

log   =  log = log =2    

8     2^3   2


底数的次方可以与指数相乘积,指数为1的情况下,log的值等于底数


1/3

log =(2^3)^1/3=  2^[3x(1/3)]

2^3


指数相乘



字符串运算符:

=  !=  -z  -n  $ # 相等,不相等,长度为0,长度不为0,为空

# if [ -n "$a" ] 判断长度为0

echo ${#a} # 打印字符串变量a 的长度




关系运算符:

-eq 相等 -ne 不相等 -gt 大于 -lt 小于

-ge 大等于 -le 小等于

#  if [ $a -gt $b ] 判断两个变量相等


布尔运算

# if [ $a -lt 100 -o $b -gt 100 ] 

! 非运算:相反的结果 -o 或运算:其一成立 -a 与运算:都要求成立


逻辑运算符:

&&  逻辑and并且运算 || 逻辑的or 或者运算

 

文件测试运算符:

-b -c -d -f -g  -k # 块设备,字符设备,目录,普通文件,SGID位


-p -r -w -x -s -e # 名管道,SUID位,文件可读,执行,为空,目录存在

# 使用样式:if [ -r $file ]


# expr 计算与运算符

#!/bin/bash

a=10

b=20


val=`expr $a + $b` # 将 + 符号换成: 减-    乘 \* 除 /  取余 %

echo "a +b = $val" # 响应一个字符串, 和变量的值 $val


if [ $a == $b ] # if 如果,then 然后, echo 响应,fi 结束字句

then  # [ $a == $b ]  用绝对等于符号判断两个字符串

        echo "a 等于 b "

fi


expr substr "this is a test" 3 5  # 抓取字符串:字符串从1开始数数,空格不算位置,抓取3到5位置的字符串



---------  逻辑运算符号符合条件就返回true  ------------

#相等 -eq    不相等 -ne     大于  -gt     大等于  -ge     小于  -lt       小等于  -le


# 非运算 !     或运算 -o 与运算 -a

[ $a != $b ] # 变量:a 不等于 b, 非运算

[ $a -lt 60 -a  $b -gt 15] # 变量:a <60   且  b>15 与运算

[ $a -lt 100 -o $b -gt 100 ] # 变量:a<100  或  b> 100 或运算


&& # 相当于与运算,满足所有条件;也用于前面成功完成才执行后面 

|| # 相当于或运算,满足一个条件就可以;前面无论成功失败就执行后面


= 字符串是否相等; != 判断是否不相等; -z 字符串长度为0;

-n  字符串长度不相等; $ 字符串为空

提供企业建站服务,免费网防系统,提交信息登录 http://yundun.ddoss.cn 邮箱: proposal@ddoss.cn 
回复列表
默认   热门   正序   倒序

回复:数组和运算awk计算符-shell基础1.4

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息