用法
#####################################################################################
1、shell脚本比较两个数字的大小
要求:让用户输入2个数字,比较他们的大小
read -p "请输入第一个数字a:" a
read -p "请输入第一个数字b:" b
if结构
##############################
if 条件;then
语句块
else
语句块
fi
[ $a 比较符 $b ]
-eq 等于 equal
-ne 不等于 not equal
-gt 大于 greater than
-lt 小于 less than
-ge 大于等于 greater than or equal
-le 小于等于 less than or equal
if 条件1;then
语句块
elif 条件2;then
语句块
elif 条件3;then
语句块
else
语句块
fi
read -p "输入第一个数字A:" a
read -p "请输入第二个数字B:" b
if [ $a -gt $b ];then
echo "A大于B"
elif [ $a -lt $b ];then
echo "A小于B"
else
echo "A等于B"
fi
变量的定义>>>>>>>>
a=6
变量的引用>>>>>>>>>>>>>
echo $a
echo ${a}
echo $变量名
$? //特殊的变量,代表的上一条命令的 执行状态码,执行退出码
当$?为0时,证明上一条命令执行成功,或者为真
当$?为非0的时候,代表一上条命令执行失败,或者为假
####################################################################################
if 条件1;then
语句块
elif 条件2;then
语句块
elif 条件3;then
语句块
else
语句块
fi
################################################
数字的计算
1、bc命令
echo 1+2 |bc
a=2 ; b=5 ;echo $a+$b |bc
echo 6+4 |bc
echo 6-4 |bc
echo 6*4 |bc
echo 6/4 |bc ##结果1 代表整除
echo 6%4 |bc ##求余
echo 2^3 |bc ##2的3次方
echo "sqrt(25)" |bc ##求平方根
[root@jw40 opt]# echo "scale=3;10/3" |bc
3.333
上网搜索使用bc命令进行 进制的转换
echo命令 -n 不换行
2、expr命令
expr 6 + 4 求和 //一定要注意表示式之间的空格
expr 6 - 4 求差
expr 6 / 4 求商
expr 6 \* 4 求积
expr 6 % 4 求余
echo 1+2的值为 expr 1 + 2 //会输出 1+2的值为 expr 1 + 2
echo 1+2的值为 `expr 1 + 2` //这样会先输出 1+2的值为 3 (不会输出expr 1 + 2,而是输出expr 1 + 2命令的执行结果)
注意反引号的作用(制表键的上面、数字1的左边那个键)
反引用的作用..........................
还有一个符号和反引号的作用一样 $()
`linux命令` == $(linux命令)
3、第三个命令 $(())
echo $((1+2))
echo $((1-2))
echo $((1*2))
echo $((1/2))
echo $((1%2))
4、第四个命令 $[ ] 这个和$(())用法是一模一样的
5、let 命令
let sum=1+2
echo $sum
############################################################
数组
数组的定义
arry=(元素1 元素2 元素3....)
0 1 2.....
echo ${arry[索引]}
如arry=(a b c d)
echo ${arry[0] //a
echo ${arry[1] //b
echo ${arry[*] //查看所有的元素
作业1、写一个脚本、让用户输入2个数字,计算他们的和、差、商、积、余
作业2、写一个脚本、能在每次执行的时候都输出一个随机范围的数字[1-39]
作业3、写一个脚本、将班上的学生定义到数组,每次执行的时候、都能随机输出一个学生的学号及姓名
12号 张三
取随机数
a=$(($RANDOM%39+1))
echo $a
1、写一个脚本,在脚本后面指定的一个参数n,就能随机输出n个学生名 2、使用for语句,将/etc/yum.repos.d,里的文件、除了CentOS-Media.repo,其他的全部加上.bak [原理可以参考,想办法优化] #!/bin/bash # #进入/etc/yum.repos.d目录 cd /etc/yum.repos.d ##使用for语句依次更改每一个文件名字 for a in CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo;do mv $a $a.bak done ####附加 将所有有.bak的文件名后的.bak去掉 3、使用for语句,计算1+2+..+20的值 4、写一个脚本、输入如下效果 0 01 012 0123 01234 012345 0123456 01234567 012345678 0123456789 ####################################(附加) 0 101 21012 3210123 432101234 5、写一个九九乘法表 程序的美化,echo带颜色的输出 echo -e 开启转义输出 \n 换行 \t 一个制表符 echo -e "\e[1;33m 内容 \e[0m" 颜色通过 33m,值的范围30m --- 37m

浙公网安备 33010602011771号