Shell脚本进阶练习

1、判断用户输入的数字是否为正整数。

#!/bin/bash

#判断用户输入的参数是否为正整数

read -p "Please input a digit:" int

if [[ "$int" =~ (^[0-9]*[1-9][0-9]*$) ]];then

echo "this digit is positive integer"

else

echo "this digit is not positive integer"

fi

~

2、判断/var/目录下的所有文件类型。

#!/bin/bash

for f in /var/* ;do

if [ -L $f ];then

echo "$f is linkfile"

elif [ -f $f ];then

echo "$f is commom fole"

elif [ -d $f  ];then

echo "$f is directory"

else

echo "$f is other files"

fi

done

3、计算100以内所有能被3整除的整数之和。

#!/bin/bash

sum=0

for i in {1..100};do

yu=$[i%3]

if [ "$yu" -eq 0 ];then

let sum+=i

fi

done

echo $sum

~

4、

编写脚本,提示请输入网络地址,如192.168.0.0,判断输入的网段中主机在线状态。

#!/bin/bash

> /app/ipv4.log

read -p "Please input the network(eg:192.168.1.0):" network

[[ "$network" =~ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]] || { echo "Please input a legal IP" ; exit 1; }

net=`echo $network | cut -d. -f1-3`

for i in {1..14};do

{

if ping -c1 -w1 $net.$i &>/dev/null;then

echo $net.$i is up |tee -a /app/ipv4.log

else

echo $net.$i is down

fi

}&

done

wait

5、九九乘法表

#!/bin/bash

for i in {1..9};do

for j in `seq 1 $i`;do

echo -e "${j}x${i}=$[j*i]\t\c"

done

echo

done

6、

在/testdir目录下创建10个html文件,文件名格式为数字N(从1到10)加随机8个字母,如:1AbCdeFgH.html

#!/bin/bash

for i in {1..3};do

j=`openssl rand -base64 1000 |tr -dc '[alpha]' |head -c8`

touch /app/$i$j.html

done

7、打印等腰三角形

#!/bin/bash

read -p "Please input number:" line

for i in `seq $line`;do

space=`echo $[$line-$i]`

for j in `seq $space`;do

echo -n ' '

done

for k in `seq $[$i*2-1]`;do

echo -n '*'

done

echo

done

时间: 2024-10-22 14:23:51

Shell脚本进阶练习的相关文章

shell脚本进阶篇(上)

shell脚本是我们学习运维的难点,本篇内容简单举例shell脚本的进阶上篇,有任何技术上的指导,知识上的不足都欢迎指出点明. 流程控制 过程式编程语言: 顺序执行   选择执行  循环执行 条件选择if语句 ? 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3;

shell脚本进阶一(for,while,continue,break,select等等)

脚本进阶一 一.for循环的第二种写法: 众所周知,for有两种写法 第一种:for i in k8s-node{1..3};do setenforce 0;done 第二种写法:C语言风格 直接写怎么用: #for后必须写两个括号,又称双小括号写法 [[email protected] ~]# cat for_2.sh #!/bin/bash for ((i=1,sum=0;i<=100;i++));do let sum+=i done echo "sum=${sum}" [[

shell脚本进阶

一.流程控制 流程控制语句,即用来实现对程序流程的选择.循环和返回等进行控制的语句. 1.条件判断 (1)if条件判断 普通if条件判断 格式: 嵌套if条件判断 格式: (2)case判断 简洁版多分支if语句,当if语句有多个elif时可以使用case语句代替,语言更简洁容易理解.使用场景:判断某个变量值是否为多种情形中的一种时使用. 格式: 示例: 执行结果: 2.循环 循环执行就是将循环体内的代码重复运行多次:运行的次数由进入循环的条件和退出循环决定. (1)for循环 格式: 列表:变

shell脚本进阶(一)

一.逻辑运算 变量: 本地变量.环境变量.局部变量.位置参数变量.特殊变量 变量赋值:name=value,export name=value,declare -x name=value 变量引用:$name,${name} 注意:有些时候{}不能省略,例如 echo "$valuemagedu.com" echo "${value}magedu.com" 撤销:unset name bash脚本编程,运行脚本 #!/bin/bash      #称为shebang

shell脚本进阶(二)

select 循环与菜单 select variable in list do 循环体命令 done select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输入 用户输入菜单列表中的某个数字,执行相应的命令 用户输入被保存在内置变量REPLY 中. select 是个无限循环,因此要记住用break 命令退出循环,或用exit 命令终止脚本.也可以按ctrl+c 退出循环. select 经常和case 联合使用 与for 循环类似,可以省略

shell脚本进阶之循环判断

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 14.0pt; font-family: 等线 } h1 { margin-top: 15.6pt; margin-right: 0cm; margin-left: 0cm; margin-bottom: .0001pt; text-align: justify; line-he

shell脚本进阶练习题---理解和练习

1.编写脚本/root/bin/createuser.sh, 实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之:显示添加的用户的id号等信息 2.判断/var/目录下所有文件的类型 3.添加10个用户user1-user10,密码为8位随机字符 4.编写脚本,提示请输入网络地址,如192.168.0.0,判断输入的网段中主机在线状态 有几个有意思点的shell脚本 5.九九乘法表 6.等腰三角形 7.国际象棋棋盘 不忘初心 砥砺前行!!! 原文地址:http

shell脚本进阶之信号的捕捉

shell脚本之信号的捕捉 ? trap,翻译过来就是陷阱的意思,shell脚本中的陷阱是专门用来捕捉信号的.啥信号呢?比如经常使用的kill -9,kill -15,CTRL+C等都属于信号 1.查看所有可用的信号 trap -l或kill -l即可 [[email protected] ~]# kill -l 63) SIGRTMAX-1 64) SIGRTMAX [[email protected] ~]# trap -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4)

shell脚本进阶之数组基础

SHELL脚本--shell数组基础 ? 数组和变量的区别:变量在内存中占用的空间是离散的,数组在内粗中开辟一段连续的大内存空间,随后数组中的每个元素都放入数组内存中.数组元素使用index标识. ? bash里有两种数组普通数组和关联数组.普通数组只能使用整数类形数值作为数组索引,关联数组可以使用字符串作为索引.关联数组的另外三种称呼:字典(dict),hash结构和映射(map),是一种key和value一一对应的关系. 一.普通数组 1.1定义普通数组 方法一: [[email prote