##################################################################################### 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 开启转义输出 换行 一个制表符 echo -e "e[1;33m 内容 e[0m" 颜色通过 33m,值的范围30m --- 37m