SHELL第二次作业

一、shell的运算符有哪些。

1.算数运算符

符号简写
+add
-sub
*mul
/div
%mod
//floordiv
**pow

2.比较运算符

在[]以及test中使用的比较符号在(())和[[]]中使用的比较符号说明
-eq==或=相等,全拼为equal
-ne!=不相等,全拼为not equal
-gt>大于,全拼为greater than
-ge>=大于等于,全拼为greater equal
-lt<小于,全拼为less than
-le<=小于等于,全拼为less equal

注意:

        =和!=也可在[]中作比较时使用,在[]中也可使用>和<符号,但需要使用反斜线转义,有时不转译虽然语法不会报错,但是结果可能会不对;

        在[[]]中也可使用包含-gt和-lt的符号,不建议使用;

        比较符号两端也要有空格。

3.布尔运算符

        &, |, ~,^

4.位运算符

        <<,>>

二、数学计算的命令有哪些,并举例使用。

运算操作符与运算命令意义说明
(())用于整数运算的常用运算符在(())中使用变量时可以去掉变量前的$符号
let用于整数运算使用let命令可以执行一个或者多个算术表达式,其中的变量名毋需使 用$符号
expr可用于整数运算,但还有很多其他的额外功能使用expr时,运算符及用于计算的数字左右都至少有一个空格,否则会报错;使用乘号时,必须使用反斜线屏蔽其特定含义;使用expr做计算,将一个未知的变量和一个已知的整数相加,看返回码是否为0,如果为0就认为做加法的变量为整数,否则就不是整数。
bclinux下的一个计算器程序(适合整数及小数算)

root@node13 test9]# echo `seq -s "+" 10` = `seq -s "+" 10 | bc

seq是生成数字序列,-s是指定数字序列之间的分隔符

$[]用于整数运算
awkawk既可以用于整数运算,也可以 用于小数运算
declare定义变量值和属性,-i 参数可以用于定义整形变量,做运算

三、${}中的使用,并举例包含(#, ##,%,%%,:, /, //),并举例使用。

表达式说明
${parameter}返回变量的内容
${#parameter}返回变量内容的长度(按字符)
${paramater:offset}在变量${parameter}中,从位置offset之后开始提取子串到结尾
${paramater:offset:length}在变量${parameter}中,从位置offset之后开始提取长度为 length的子串
${parameter#word}从变量${parameter}开头开始删除最短匹配的word子串
${parameter##word}从变量${parameter}开头开始删除最长匹配的word子串
${parameter%word}从变量${parameter}结尾开始删除最短匹配的word子串
${parameter%%word}从变量${parameter}结尾开始删除最长匹配的word子串
${parameter/pattern/string}使用string代替第一个匹配的pattern
${parameter//pattern/string}使用string代替所有匹配的pattern

四、条件测试的语法(()), [[]],[],test,功能以及语法格式。

条件测试语法

说明

语法1: test <测试表达式>test命令和之间至少有一个空格
语法2:[ <测试表达式> ]该方法和test命令的用法一样,[]的边界和内容之间至少有一个空格
语法3:[[ <测试表达式> ]]比test和[]更新的语法格式。[[]]的边界和内容之间至少有一个空格。[[]]中可以使用通配符等进行模式匹配
语法4:((<测试表达式>))

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

1.文件测试表达式

 2.字符串测试表达式

3.整数测试表达式

  

五、实验,通过read读入两个整数,并比较他们的大小。

[root@localhost test3]# vim read.sh
#!/bin/bash
read -p "please input two number:" a b
[ -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 0
}
[ "$a" -eq "$b" ] && {
echo "$a = $b"
exit 0
}
[ "$a" -gt "$b" ] && {
echo "$a > $b"
exit 0
}
[root@localhost test3]# ./read.sh
please input two number:10 11
10 < 11
[root@localhost test3]# ./read.sh
please input two number:5 5
5 = 5

六、实验,假设执行一个可以携带参数的script,执行该脚本后屏幕会显示如下的数据。程序的文件名;共有几个参数;若参数的个数小于2个则告知用户参数数量太少;全部的参数内容;第一个参数;第二个参数。

[root@localhost shell]# vim parameter.sh
#!/bin/bash
echo "the script's filename: $0"
echo "the script parameter number is: $#"
[ "$#" -lt 2 ] && {
        echo "the number of parameter is less than 2!!!!"
        exit 0
}
echo "the script takes the following: $@ "
echo "first parameter is $1"
echo "the 2nd paraneter is $2"
[root@localhost shell]#bash parameter.sh 1 2 6 7
the script's filename: parameter.sh
the script parameter number is: 4
the script takes the following: 1 2 6 7 
first parameter is 1
the 2nd paraneter is 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值