shell命令--计算

一。运行

soucre  .当前进程执行脚本

sh bash在子进程执行脚本,完成后消失

转义符"\$6999"---->$6999还原本身的语意,

转义符'\$6999'---->\$6999本来的意思

头文件 #!/bin/bash

变量引用要加$

二。特殊符号

1.$()   ``

执行命令,给出结果

举例 echo 当前的用户是`whoami`

输出 当前的结果是 root

举例 `whoami`

结果 报错

举例 

linux@ubuntu:~$ `whoami`

Command 'linux' not found, did you mean:

  command 'linex' from snap linex (0.1.6)

See 'snap info <snapname>' for additional versions.

举例

linux@ubuntu:~$ echo bianliangis `whoami`
bianliangis linux
 

2.${变量}   取出变量

3.() 开启子shell并执行命令

4.$变量  取出变量名称

举例

linux@ubuntu:~$ echo $name
111
linux@ubuntu:~$ echo ${name}
111
三。计算

1.双括号

linux@ubuntu:~$ name=3
linux@ubuntu:~$ $((name=name*3))
9: command not found
linux@ubuntu:~$ echo $((name=name*3))
27

脚本举例

sed 字符串替换

解释

- `echo $name`:输出变量`name`的值。
- `sed 's/[0-9]//g'`:使用sed命令进行字符串替换。这里的`sed`命令用于删除所有数字(`[0-9]`表示任何数字,`//`表示替换为空,即删除,`g`表示全局匹配,即删除所有数字)。
- `echo $name|sed 's/[0-9]//g'`:将变量`name`的值传递给sed命令处理,处理后的结果不包含任何数字。
- `-n`:是`test`命令的一个选项,用于检查字符串的长度是否非零。
- `if [ -n "`echo $name|sed 's/[0-9]//g'`" ]`:整个条件判断的意思是,如果变量`name`去除所有数字后的字符串长度非零(即`name`中至少包含一个非数字字符),则条件为真。

2.let 运算符

数值转义

linux@ubuntu:~$ num=5
linux@ubuntu:~$ let num=num+1
linux@ubuntu:~$ echo ${num}
6
 

四。nginx服务是否连接成功

脚本举例

#!/bin/bsah
Checkurl()
{
    timeout()=5
    fails=0
    success=0
    while true
        do
            wget --timeout=${timeout}  --tries =1 http://baidu.cn/ -q -0 /dev/null
            if[ $? -ne 0  ]
                then 
                    let fails=fails+1
            else
                let success+=1
            fi
            
            if [ ${success} -ge 1 ]
                then
                    echo "great!!!"
                    exit 0
            fi
            if [ ${fails} -ge 2 ]
                then 
                    echo "bad!!!"
                    exit 1
            fi
        done
}

Checkurl
 

代码解释

-ne   不等于

-ge  大于等于

-le 小于等于

- `wget`:命令名称,表示用来执行网络文件下载。
- `--timeout=${timeout}`:这个选项设置wget在等待服务器响应时的超时时间,`${timeout}`是一个变量,需要在实际使用时替换成具体的数值,表示超时时间(以秒为单位)。
- `--tries=1`:这个选项设置wget在尝试下载时只尝试一次。如果下载失败,wget将不会再次尝试。
- `http://baidu.cn/`:这是wget要下载文件的URL地址,这里指定的是百度网站的网址。
- `-q`:这个选项表示“quiet”,告诉wget在操作时不要显示任何信息,即静默模式。
- `-O`:这个选项告诉wget将下载的文件重命名为后面的参数指定的文件名。

五。expr

计算器

linux@ubuntu:~/shell$ expr 5 \* 3
15
求长度

linux@ubuntu:~/shell$ expr length 123
3
逻辑判断

linux@ubuntu:~/shell$ expr 8 \> 9
0
模式匹配

:计算字符串的字符数量

.* 字符串重复执行可以自定义

linux@ubuntu:~/shell$ expr name ":" ".*"
4

linux@ubuntu:~/shell$ expr name ":" ".*p"
0
六。其他计数器

1.bc   交互式计算机界面小数计算也可以

linux@ubuntu:~/shell$ echo "5*5" | bc
25

举例   1+到1000的和

linux@ubuntu:~/shell$ echo {1..100} |tr " " "+"
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
linux@ubuntu:~/shell$ seq -s + "100"
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
 

解释  -s 指定分隔符为 "+"

2.awk

linux@ubuntu:~/shell$ echo "99 88" | awk '{print $1+$2}'
187
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值