day03脚本练习题

1、用while循环输出数字1到10(降序输出)

用while循环输出数字35到50(升序输出)

#!/bin/bash

j=10

i=35

while [ $j -ge 1 ]

do

echo$j

let j--

done

while [  50 -ge $i ]

do

echo$i

let i++

done

2、批量添加15个系统用户要求如下

用户名的密码与用户名相同

用户名的前辍是user,用户名格式如下

user01 user02 ... user09 user10 ... user15

强制新添加的用户首次登陆时,重置自已的登陆系统的密码

#!/bin/basha

i=useradd

u=user0

j=1

o=user

k=10

while [ 9 -ge $j ]

do

$i $u$j

echo "$u$j"  | passwd --stdin $u$j &> /dev/null

chage -d 0 $u$j

let j++

done

while [ 15 -ge $k ]

do

$i $o$k

echo "$o$k" | passwd --stdin $o$k &> /dev/null

chage -d 0 $o$k

let k++

done

3、编写脚本userdel.sh(删除刚才批量添加的15个系统用户)

#!/bin/basha

u=user0

j=1

o=user

k=10

while [ 9 -ge $j ]

do

userdel -r $u$j

let j++

done

while [ 15 -ge $k ]

do

userdel -r $o$k

let k++

done

4、useradd.sh(交互式批量添加系统用户)

功能如下:

1、可以设置添加的用户数量、用户的密码、用户的家目录、用户的有效期

用户前辍

#!/bin/bash

read -p "请输入你要添加的用户数量:" yh

if [ -z $yh ];then

echo "数量不能为空"

exit

fi

i=1

while [ $yh -ge $i  ]

do

read -p "请输入用户家目录存放的位置如:/home/xxx:" mulu

read -p "请输入你的用户名:" name

useradd -d $mulu $name

passwd $name

read -p "请输入你的用户的有效期如:xxxx-xx-xx:" yxq

chage -E $yxq $name

let i++

done

#!/bin/bash

read -p "请输入用户的个数:" "usernum"

read -p "请输入用户名:" username

read -p "请输入密码:" userpas

if [ -z $usernum ] || [ -z $username ] || [ -z $useraps ];then

echo “输入不完整,自动退出”

else

i=1

while [ $i -le $usernum]

do

useradd $username$i

echo $userpas | passwd --stdin $username &> /dev/null

let i++

done

fi

5、用(C-for)批量添加15个系统用户要求如下

用户名的密码与用户名相同

用户名的前辍是user,用户名格式如下

user01 user02 ... user09 user10 ... user15

强制新添加的用户首次登陆时,重置自已的登陆系统的密码

#!/bin/bash

for((i=1;i<=15;i++))

do

if[ $i -lt 10 ];then

useradd user0$i

echo "user-$i" | passwd --stdin user0$i

chage -d 0 user0$i

else

useradd user$i

echo "user$i" | passwd --stdin user$i

chage -d 0 user$i

fi

done

6、用C-for编写脚本(删除上面批量添加的15个用户)

#!/bin/bash

for((i=1;i<=9;i+=))

do

userdel -r user0$i

done

for((i=10;i<=15;i++))

do

userdel -r user$i

done

7、用until循环结构输出值1-5

#!/bin/bash

i=1

until [ $i -gt 5 ]

do

echo $i

let i++

done

8、four.sh(在一个脚本里面分别用四种循环结构输出数字8到12)

#!/bin/bash

#for循环

for i  in  `seq 8 12`

do

echo $i

done

#while循环

i=8

while [ $i -le 12 ]

do

echo $i

let i++

done

#C-for循环

for((i=8;i<=12;i++))

do

echo $i

done

#until循环

i=8

until [ $i -gt 12 ]

do

echo $i

let i++

done

9、check_gatewy.sh

(当前服务器使用的网关地址不能用时,向终端发送警告信息)

using gateway error

echo "using gateway error" > /dev/tty1

echo "using gateway error" > /dev/pts/1

write

#!/bin/bash

wg=`route -n | tail -1 | awk ‘{print $2}‘`

ping -c 3 $wg &> /dev/null

if [ $? -eq 0  ];then

echo "网关正常"

else

echo “using gateway error” > /dev/tty1

echo "using gateway error" > /dev/pts/1

fi

1.100        route 网通

10、auto_gw.sh,自动切换当前主机的网关

192.168.1.0/24------iptables---

1.251 1.254

route 电信

#!/bin/bash

gw=`route -n | tail -1 | awk ‘{print $2}‘`

while :

do

ping -c 3 $gw &> /dev/null

if [ $? -ne 0  ];then

route add default gw 192.168.1.254 &> /dev/null

route del default gw 192.168.1.100 &> /dev/null

else

route add default gw 192.168.1.100 &> /dev/null

route del default gw 192.168.1.254 &> /dev/null

fi

done

11、如果系统的是 星期一 到 星期五 就输出工作日

如果系统的是 星期六 就输出 约会日

如果系统的是 星期日 就输出 休息日

#!/bin/bash

read -p "请输放你选择的星期 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 " xq

case $xq in

星期一)

echo "今天是工作日";;

星期二)

echo "今天是工作日";;

星期三)

echo "今天是工作日";;

星期四)

echo "今天是工作日";;

星期五)

echo "今天是工作日";;

星期六)

echo "今天是约会日";;

星期日)

echo "今天是休息日";;

*)

echo "$0只能选择这里的其中一个 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日"

esac

12、very_num_dj.sh (输出任意数相乘的积)

#!/bin/bash

i=1

while [ $# -gt 0  ]

do

i=`expr $i \* $1`

shift

done

echo $i

13、very_num_shang.sh(输出任意数相除的商)

#!/bin/bash

i=`expr $1 \* $1`

while [ $# -gt 0 ]

do

i=`expr $i / $1`

shift

done

echo $i

14、very_num_shang.sh(输出任意数相减的差)

#!/bin/bash

i=`expr 2 \* $1`

while [ $# -gt 0 ]

do

i=`expr $i - $1`

shift

done

echo $i

15、very_num_shang.sh(输出任意数相加的和)

#!/bin/bash

i=0

while [ $# -gt 0 ]

do

i=`expr $i + $1`

shift

done

echo $i

#!bin/bash

one=$1

shift

while [ $# -gt 0 ]

do

let one+=$1

shift

done

echo $one

时间: 2024-12-25 18:44:13

day03脚本练习题的相关文章

shell脚本练习题(更新中...)

练习题(这里贴的是自己写的代码, 网上给的题目代码我会附加在最下面) 1. 编写shell脚本,计算1-100的和: 1 #!/bin/bash 2 #caculate the sum of numbers from 1 to 100 3 4 sum=0 5 for i in `seq 1 100`; do 6 sum=$[$sum+$i] 7 done 8 echo $sum 2. 编写shell脚本,要求输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到

shell脚本练习题

求出数字1~100的累加和: 要求数字的累加,可以使用循环来完成,如下代码: #!/bin/bash sum=0 str="" #for i in {1..100} for ((i=1 ; i<=100 ; ++i)) do     str+="${i}+"     let sum+=i done echo "${str%+}=${sum}" 运行脚本: 另外一种可以用递归的方式: #!/bin/bash read num  sum=0 s

shell编程脚本练习题

1.使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,名称例如为: [[email protected] oldboy]# sh /server/scripts/oldboy.sh [[email protected] oldboy]# ls coaolvajcq_oldboy.html  qnvuxvicni_oldboy.html  vioesjmcbu_oldboy.html gmkhrancxh_oldboy.html  tmd

day01脚本练习题

1.管理员用户登陆系统时,可以使用如下方式,开启并闭系统服务 服务名 start|restart|stop|status sshd start 答案: #tail /etc/bashrc export PATH=/etc/init.d:$PATH #source /etc/bashrc 2.每周日晚上23:30对数据库服务器webdb数据库做完整备份,把备份文件保存到/mysqlbak文件里,用系统日期做备份文件名 答案: #crontab -e 30 23 * * 7 /usr/bin/mys

day02脚本练习题

一.four.sh输出用户从健盘输入的任意2个数的四则运算结果 如果用户有一个数值没有输入,就终止脚本 #!/bin/bash read -p "请输入第一个数:"  num1 read -p "请输入第二个数:"  num2 [ -z $num1 ] && exit [ -z $num2 ] && exit sum=`expr $num1 + $num2` jian=`expr $num1 - $num2` cheng=`expr

day04脚本练习题

1.在fun.sh脚本里定义函数sum_two(功能是能够计算任意两个数相加的和) #!/bin/bash #yi=$1 #er=$2 if [ -z $yi ] || [ -z $er ];then echo数字不能为空 if sum_two() { #sum=`expr $yi + $er` sum=`expr $1 + $2` #echo "$yi + $er = $sum" echo "$1 + $2 = $sum" } #sum_two $1 $2 sum

脚本练习题

脚本练习 达到的效果  ./output.sh   5  file.txt  输出指定文件第5行 ./output  5-10  file.txt 输出指定文件第5-10行 #!/bin/bash ###read the argument to output the file content. if [ -n $1 ] && ! [[ $1 =~ [a-zA-Z] ]] && [ -f $2 ];then              #判断行的参数是否存在且为数字,打开的文件

Linux学习—脚本练习题

shell脚本练习 1.编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率,如果超过80%,就发广播警告空间将满 #!/bin/bash #编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率,如果超过80%,就发广播警告空间将满 #************************************************************************************************

Shell学习之路和我发布过的Shell脚本博文

Shell学习之路 目录 Shell学习之路[第一篇]:别名,管道,用户配置文件,变量,read Shell学习之路[第二篇]:条件测试,运算符,选择结构,for循环结构 Shell学习之路[第三篇]:While循环,C-for循环,Until循环,case分支结构,流程控制语句 Shell学习之路[第四篇]:函数,数组,变量替换 Shell学习之路[第五篇]:多线程脚本 Shell学习之路[第六篇]:Trap信号捕捉命令介绍与Shell结合实战讲解 Shell学习之路[第七篇]:Linux下d