一分钟带你了解shell

1.shell的运算符有哪些
2.数学计算的命令有哪些,并举例使用
3.${}中的使用,并举例包含(#, ##,%,%%,:, /, //),并举例使用
4.条件测试的语法
  (()), [[]],[],test,功能以及语法格式
5.通过read读入两个整数,并比较他们的大小
6.假设执行一个可以携带参数的script,执行该脚本后屏幕会显示如下的数据

 运算符:

1.算术运算符

+、- 求和、差 

*、/、% 求乘积,商,余数 

** 幂运算,例如3**3是求3的立方,即27 

+=、-=、 *=、/=、%= 例a+=1相当于a=a+1 

++variable、- -variable 先将变量variable的值加1,然后再赋给variable; 先将变量variable的值减1, 然后再赋给variable 

variable++、 variable-- 先使用variable的值,然后再将该变量的值加1; 先使用variable的值,然后再 将该变量的值减1 

2.位运算符

<<、 >> 位运算通常出现在整数间,它针对的不是整个整数,而是其二进制表示形式中的 某个或者某些位(bit)。例如,2>>1是将二进制形式的2,即10,左移1位,从 而变成100,即4。 左移,4<<2,将4左移2位,结果为16; 右移,8>>2,将8 右移两位,结果为2 

&、|、~、^ 按位与,8&4,将8和4进行按位与运算,结果为0; 按位或,8|4,将8和4进行 按位或运算,结果为12; 按位非,~8,将8进行按位非运算,结果为-9(一个字 符占一个字节,即8个二进制位,最高位为1时为负数); 按位异或(a异或b, a、b值不同结果为1,相同结果为0),10^6,将10和6进行按二进制位异或运 算,结果为12。 

<<=、>>= 将变量的值左移指定位数之后重新赋给该变量,x<<=3,将x的值左移3位,重新 赋给变量x; 将变量的值右移指定位数之后重新赋给该变量,x>>=4,将变量x的 值右移4位后重新赋给变量x。 

3.条件运算符

&=、|=、^= 将变量的值与指定的数值按位与之后重新赋给该变量,x&=8,将变量x的值与8 按位与运算之后重新赋给变量x; 将变量的值与指定的数值按位或之后重新赋给 该变量,x|=7,将变量x的值与7执行按位或运算之后重新赋给变量x; 将变量的 值与指定的数值按位异或之后重新赋给该变量,x^=9,将变量x的值与9执行按 位异或运算之后重新赋给变量x。

 数学计算的命令:

1.let

例:

 let在进行运算时需要定义一个变量才能得到运算结果,只能进行整数运算,如下:

 2.expr

例:

 expr在运算后会自动输出所得的结果,只能进行整数运算,如下:

 3.(())

例:

 (())在运算后的结果会直接得出,不需要变量,只能进行整数运算,如下: 

4.bc

例:

bc实际是Liunx的一个计算程序,可以进行小数运算,也不需要变量即可表示如下:

5. $[]

例:

 $[]效果与(())基本类似,如下:

${}中的使用

定义一个变量data,内容为q,qw,qwe,qwer

#和##

 #在前时,所输出的是变量参数的长度,如图:

当#在后面时,从前往后删除所匹配的最短字符串,如图:

 当##在后面时,从前往后删除随匹配的最长字符串,如图:

%和%%

当%在后面时,从后往前删除所匹配的最短字符串,如图:

当%%在后面时,从后往前删除所匹配的最长字符串,如图:

第一个:后的数字是从什么位置之后开始

第二个:后的数字是保留的位数

如果第一个:后为空,则默认从第0位开始保留

如果第二个:后为负数则所表示的则是偏移的位数(相当于去除的位数)

/和//

如果一开始只有一个/,第一个/代表用第二个/之后的字符替代所匹配到的第一个字符

 如果一开始有两个/代表用第三个/后的字符替代所匹配到的所有字符

 

 条件测试的语法:

首先创建普通文件test_file和目录文件test_dir

(())

例:

一般用于if语句里,双小括号两端不需要有空格,测试对象只能是整数 ,小括号两端不需要空格如图:

[]

例:

 该方法和test命令的用法一样,[]的边界和内容之间至少有一个空格 ,如图:

[[]]

例:

比test和[]更新的语法格式。[[]]的边界和内容之间至少有一个空格。[[]]中可 以使用通配符等进行模式匹配

 

test

例:

一般用于if语句里,双小括号两端不需要有空格,测试对象只能是整数

通过read读入两个整数,并比较他们的大小 

 如果输入为空:

 

如果输入为其他字符:

正确输入时:

假设执行一个可以携带参数的script,执行该脚本后屏幕会显示如下的数据 

 输出如下

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值