设为首页收藏本站

中国学客联盟

 找回密码
 立即注册




查看: 1182800|回复: 692

写几个脚本让学习脚本的初学者开阔一下思路

  [复制链接]

[UID商城]   [抢购靓号]

该用户从未签到

新手上路

Rank: 1

UID
3639282
威望
0
贡献
0
在线时间
3 小时
注册时间
2016-2-20
发表于 2016-2-22 16:03:34 | 显示全部楼层 |阅读模式
写这个几个脚本的目的 是为了能让初学脚本的爱好者增加一下学习的兴趣和开阔一下思路
对于那些高手们就不值一提啦!!小弟在这里献丑啦!

第一个脚本: 乘法表   写一个脚本 显示出来乘法表

内容如下:
vi  1.sh
#!/bin/bash
i=1      //定义变量
j=1      //定义变量
while [ $i -le 9 ]        //当i 值小于9 执行下面语句
do
     while [ $j -le $i ]         //当j值小于 i值的时候 执行下面语句
do
echo -n "${j} x ${i}=`expr $j \* $i ` "   // 输出的形式
    let j                 //执行到这里把j值加1
done
echo ""
let i
j=1   //重新定义j的值等于1
done

第二个脚本: 判断一个数为偶数还是奇数 或者 0   
  意思是 写一个脚本执行由操作人员输入一个数字 等判断出是什么数来。

vi  2.sh
#!/bin/bash
read -p " input number" aa  //让操作员输入数之后给变量aa
if  [ aa -ep 0  ]     //如果aa值等于0就执行下面的语句 否则跳到elif
then
echo " this is 0 " //如果 aa等于0 就输出这句话
elif [ `expr $aa % 2` -eq 0 ]    //计算aa变量的值除2是否等于0  如果等于则执行下面语句
then
echo " this is 偶数 "  //上面的条件成立了 就能证明aa的值是偶数
else                                   // 如果上面的俩个条件判断都不成立就执行下面语句
echo “this is 奇数”//  输入的数不是偶数 不是0的话 一定是奇数啦
fi



第三个脚本:算出1-100之间的偶数和
vi 3.sh
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]    //i的值 小于100执行下面语句
do
   while [ `expr $i % 2` -eq 0 ]   // i的值除2 等于0 就执行下面的语句
do
sum = ` expr $sum $i ` //计算sum的值 也就是所以偶数的和
let i         // 重新定义i的值
done                                 //如果满足了 就向上面在循环 一直到上面的条件不满足为止
let i        // 重新定义i的值
done
echo "he shi $sum"  / / 当判断完之后算出的偶数和

第四个脚本  找出1 到 999之间 那些是莲花数   
莲花数就是   每位数的立方(m³) 相加起来等于源数本身
例如:153    1立方是1   5的立方是125    3 的立方是27            1 125 27=153

#!4.sh
i=100       // 定义一个变量     
while [ $i -le 999 ]          //i的值如果小于 999 就执行下面语句
do
a= `expr $i / 100`            // 定义a的变量    是由 i的值除100的值所得     (求出百位数)
temp=`expr $i 0`      //在定义一个temp的变量 是由 i的值除100 所得余数的值
b=`expr $temp / 10`        //在定义b的变量   是有temp也就是十位上的数在除10 所得值  (求出十位数)
c=`expr $temp % 10`      //在定义c的变量  是由temp 值 除10 所得出的 余数           (求出个为数)
he=`expr $a \* $a \* $a $b \* $b \* $b $c \* $c \* $c`            //  让得出的三位数都位数都立方后相加 得出一个数
if [ $i -ep $he ]       //用i的值比较 立方后相加的数 是否相等   如果相等 就代表是莲花数 就执行下面语句
then
echo "$i 这是莲花数"                 //把莲花数显示出来
fi
let i          //这是当i的值执行到这的时候 加上1 在到前面去条件判断,例如:先判断的是100 当执行到这的在             加上1 就等于101 之后返回最上面接着判断,一直加999的时候 不满足上面的条件判断 就退出循环
done

第5个 脚本  由用户从键盘输入一个大于1的整数。并计算从1到该数之间的各整数的和。
vi 5.sh
#!/bin/bash
read -p "Input a number (>1):"  up          //读取用户指定的数值保存到up变量
i=1          // 定义变量 从整数1开始计算
sum=0       //这个变量用户保存各个整数之和
while [ $i -le $up ]    //加数小于用户指定的上限时执行循环
do
sum=`expr $sum $i`  //将整数 i的值 累加给变量sum
i=` expr $i 1`        //将整数i的值增加1  参加下一次循环
done
echo "the sum of 1-$up is :" $sum''          //输出求和结果


第5个脚本   批量增加系统用户,用户名依次是 user1 user2 user3.....user20
vi 5.sh
#!/bin/bash
i=1                         // 定义一个变量
while [ $i -le 20 ]           //i的值小于20 执行下面的
do
useradd user$i           增加用户 当上面i=1时  这里就是 user1
echo "123456" | passwd --stdin user$i &> /dev/null     为用户账户设置初始密码
let i         将i值增加1  回到上面继续判断  
done

第六个脚本
对于使用/bin/bash作为登录shell的系统用户,检查他们在/opt目录中拥有的子目录或文件数量,如果超过100个,则列出具体数值及对应的用户账户。
vi  6.sh
#!/bin/bash
DIR="/opt"                  //设置检查的目标目录 变量
SHU=100                   //设置文件数量的限制值
validusers=` grep " /bin/bash" /etc/passwd | cut -d ":" -f 1 `         //找出以bash登录系统用户列表之后给变量validusers
for username in $validusers     // 设置变量validusers的值 一次一次的给 username 循环
do
  Num=`find $DIR -user  $username | wc -l `           //统计每个用户拥有的文件数 给变量 Num
  if [ $Num -gt $SHU ] ; then       //将每个用户拥有的文件数和限制的值 做比较 如果大于100个就执行 下面语句
     echo "$username have $Num files"   //username变量是用户名   Num 是拥有的文件数  也就是用户有多少文件将显示出来
  fi
done


第7个脚本   计算 /etc目录中 所有 *.conf 形式的配置文件所占用的总空间大小。
vi  7.sh
#!/bin/bash
sizenums=$(ls -l  $(find /etc -type f -a -name *.conf) | awk '{print $5}')    // 提取各文件的大小值给变量 sizennums
total=o
for i in $sizenums
do
  total=`expr $t $i `           //计算没个文件大小之和
done
  echo "total size of conf files: $total bytes"       // 最后把文件的大小和显示出来

中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

金牌会员

Rank: 6Rank: 6Rank: 6

UID
3638822
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-8-31
发表于 2016-2-22 16:03:35 | 显示全部楼层
好东西,O(∩_∩)O谢谢
中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

金牌会员

Rank: 6Rank: 6Rank: 6

UID
3638464
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-7-11
发表于 2016-2-22 16:11:22 来自手机 | 显示全部楼层
有空一起交流一下
中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

金牌会员

Rank: 6Rank: 6Rank: 6

UID
3637982
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-7-10
发表于 2016-2-22 16:43:18 | 显示全部楼层
佩服佩服!
中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

高级会员

Rank: 4

UID
3638944
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-9-12
发表于 2016-2-22 16:44:19 来自手机 | 显示全部楼层
发发呆,回回帖,工作结束~
中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

金牌会员

Rank: 6Rank: 6Rank: 6

UID
3638254
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-7-11
发表于 2016-2-22 17:21:14 | 显示全部楼层
我是个凑数的。。。
中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

金牌会员

Rank: 6Rank: 6Rank: 6

UID
3638820
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-8-31
发表于 2016-2-22 17:50:13 来自手机 | 显示全部楼层
围观 围观 沙发在哪里!!!
中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

金牌会员

Rank: 6Rank: 6Rank: 6

UID
3638358
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-7-11
发表于 2016-2-22 18:53:13 | 显示全部楼层
顶起顶起顶起
中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

金牌会员

Rank: 6Rank: 6Rank: 6

UID
3638113
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-7-11
发表于 2016-2-22 18:56:45 来自手机 | 显示全部楼层
楼下的接上
中国学客联盟

[UID商城]   [抢购靓号]

该用户从未签到

金牌会员

Rank: 6Rank: 6Rank: 6

UID
3638920
威望
0
贡献
0
在线时间
0 小时
注册时间
2015-8-31
发表于 2016-2-22 18:59:57 | 显示全部楼层
占坑编辑ing
中国学客联盟
 懒得打字嘛,点击右侧快捷回复【左侧自定义内容】  【右侧自定义内容】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表