用法

 

#####################################################################################
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
posted @ 2016-11-29 21:02  gidos  阅读(230)  评论(0编辑  收藏  举报