shell --2

一:shell的运算符有哪些

运算符说明
+、-求和、差
*、/、%求乘积,商,余数
**幂运算,例如3**3是求3的立方,即27
+=、-=、*=、/=、%=例a+=1相当于a=a+1
++variable、- -variable先将变量variable的值加1,然后再赋给variable; 先将变量variable的值减1,然后再赋给variable
variable++、variable- -先使用variable的值,然后再将该变量的值加1; 先使用variable的值,然后再将该变量的值减1
位运算符<<、>>位运算通常出现在整数间,它针对的不是整个整数,而是其二进制表示形式中的某个或者某些位(bit)。例如,2>>1是将二进制形式的2,即10,左移1位,从而变成100,即4。 左移,4<<2,将4左移2位,结果为16; 右移,8>>2,将8右移两位,结果为2
&、1、~、^按位与,8&4,将8和4进行按位与运算,结果为0; 按位或,84,将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。
&=、1=、^=将变量的值与指定的数值按位与之后重新赋给该变量,x&=8,将变量x的值与8
按位与运算之后重新赋给变量x; 将变量的值与指定的数值按位或之后重新赋给该变量,x=7,将变量x的值与7执行按位或运算之后重新赋给变量x; 将变量的值与指定的数值按位异或之后重新赋给该变量,x^=9,将变量x的值与9执行按位异或运算之后重新赋给变量x。

二:数学计算的命令有哪些?

a=1
b=2

nu1=$(($a+$b))
echo "a+b: $nu1"
echo "$((a+b))"

let l=a*b
echo "$l"

val=`expr $b - $a`
echo "$val"

val=$[$a%$b]
echo "$val"

val=$a+$b | bc
echo "$val"

三:${}中的使用

在这里插入图片描述```
[root@localhost ~]# str1=“hello world”
[root@localhost ~]# echo ${#str1}
11
[root@localhost ~]# echo ${str1:1}
ello world
[root@localhost ~]# echo ${str1::3}
hel
[root@localhost ~]# echo ${str1:0-1:1}
d
[root@localhost ~]# echo ${str1:0-5}
world
[root@localhost ~]# echo ${str1:-5}
hello world

## 四:条件测试的语法
![在这里插入图片描述](https://img-blog.csdnimg.cn/d3e2c3726717486ca1625eb00f8ff329.png)
1.test--

[root@shell test]# test -a file;echo $?
0
[root@shell test]# ll
total 20
drwxr-xr-x. 2 root root 6 Aug 20 00:56 file

 2. [] ---(注意测试表达式和方括号两边需要有空格)
 

[root@shell test]# [[ -x file ]];echo $?
0
[root@shell test]# [[ -x file1 ]];echo $?
1


3. [[ ]] --(注意测试表达式和方括号两边需要有空格)

[root@shell test]# [[ -x file ]];echo $?
0
[root@shell test]# [[ -x file1 ]];echo $?
1

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

read -p "please input a number:" a b
[ -z "$a" -o -z "$b" ]&&{
echo "please input two number"
exit 1
}
[ -z "$a" -o -z "$b" ] && {
echo "please input 'two' number"
 exit 1
}
expr $a + 10 &>/dev/null
return_a=$?
expr $b + 10 &>/dev/null
return_b=$?
[ "$return_a" -eq 0 -a "$return_b" -eq 0 ] || {
exit 1
}
[ -z "$a" -o -z "$b" ] && {
echo "please input 'two' number"
 exit 1
}
expr $a + 10 &>/dev/null
return_a=$?
expr $b + 10 &>/dev/null
return_b=$?
[ "$return_a" -eq 0 -a "$return_b" -eq 0 ] || {
echo "please input two 'number'"
 exit 2
}
[ "$a" -lt "$b" ] && {
echo "$a < $b" 
exit 

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

echo "the script name is $0"
echo "the parameter number is $#" 
[ "$#" -lt 2 ] && echo "the number of parameter is less than 2." && exit 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值