学以致用,简单做一些shell的入门案例

Posted 丁CCCCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学以致用,简单做一些shell的入门案例相关的知识,希望对你有一定的参考价值。

一、九九乘法表

脚本

#!/bin/bash

a=0										# 设置变量
b=0										# 设置变量
# 使用for循环
for ((a=1;a<=9;a++))					# 变量a=1,并且要小于等于9,每次加1
do
	# 设置内循环
    for ((b=1;b<=a;b++))				# 变量b=1,并且小于等于a,每次加1
    do
    c=$[$a*$b]							# 乘法运算,结果等于a*b
    echo -ne "$a*$b=$c\\t"				# 输出,-n代表

    done

echo ""

done

示意图

在这里插入图片描述

二、验证密码输入是否正确,三次机会

脚本

read -p "请输入密码:" a				# 提示信息
passwd=123							# 设置正确密码

if [ $a != $passwd ];then			# 设置循环
    echo "密码错误!"
  else
    echo "正确!"
  exit								# 退出循环,这里要用exit退出,否则会进入下一循环
fi

read -p "你还有两次机会!:" b        # 设置第二次循环

if [ $b != $passwd ];then
    echo "错误!"
  else
    echo "正确!"
  exit
fi

read -p "最后一次!:" c             # 设置第三次

if [ $c != $passwd ];then
    echo "错误!"
  else
    echo "正确!"
  exit
fi

示意图

在这里插入图片描述

三、查询本机用户是否存在,不存在则选择是否创建

脚本

read -p "请输入用户名:" a					# 输入变量
grep $a /etc/passwd &>/dev/null				# 在系统用户文件内查询是否有这个用户

if [ $? = 0 ];then							# 前面输入回执为0(正确)时
  echo "该用户已存在!"						# 提示信息
  exit										# 正确就退出
else
  read -p "查无此人,是否创建?(y/n):" y		# 不正确就提示是否创建
 
   if [ $y = y ];then						# 需要就y,对应上后继续
   useradd $a								# 创建用户命令
   read -p "请输入新用户密码:" b				# 提示输入密码
   echo "$b" | passwd --stdin $a			# 将密码导入进

   else
   exit
   fi
fi

示意图

在这里插入图片描述

四、检测指定网段内的主机通信状况,并导出正确的主机IP

脚本

for a in 192.168.253.{8..12}					# 选择需要查询的网段范围
do
ping -c 2 -i 0.5 -w 2 $a &>/dev/null			# ping命令测试,并将多余的信息导入到黑洞文件内

 if [ $? = 0 ];then								# 未报错的继续
echo "主机正常"									# 提示信息
echo $a >> /opt/lianxi/host_ip					# 导入到指定文件内

 else 
echo "主机离线"									# 报错的提示信息

 fi
done

示意图

在这里插入图片描述

五、根据用户名解锁对应的压缩包

脚本

read -p "请输入文件名:" aa				# 输入压缩包名称

case $aa in								# 使用case循环
*.tar.gz)								# 压缩包为gizp格式
tar zxvf $aa -C /opt

;;

*.tar.bz2)								# 压缩包为bzip2格式
tar jxvf $aa -C /opt

;;

*)										# 输入错误
echo "请输入正确的名称!"

esac

示意图

在这里插入图片描述

六、搜索指定位置的可执行文件

脚本

IFS=$IFS:
c=0
d=0

for i in `echo $PATH`			
do
cd $i							# 进入变量
echo ls $i | wc -l				# 输出
  echo "$i:"
  for a in `ls $i`
  do
let d++

test -x $a						# 挑选“可执行文件”
 if [ $? -eq 0 ];then
     echo "$a--可执行"
      let c++
    fi
  done
done

echo "总数:$d"
echo "可执行的文件总数:$c"

示意图

在这里插入图片描述

七、随机生成八位数密码

脚本

a="0123456789abcdefghijklmnopqistuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"				# 密码可用数
b=""
for i in {1..8}						# 选择位数
do
   c=$[RANDOM%${#a}]				# RANDOM表示随机一个0-65535密码
   d=${a:c:1}
   b+=$d

done
 echo $b

示意图

在这里插入图片描述

八、输出一个可变菱形

脚本

read -p "请输入边长:" o
								#使用拼接方法,所以需要先输出一个空白的倒直角三角形
for ((a=o; a>=1; a--))
do
echo -n " "
  for ((b=1; b<a; b++))
  do
  echo -n " "
  done
  for ((c=o; c>=a; c--))		#输出三角形
  do
  echo -n "*"
  done
  for ((d=o; d>a; d-- ))
  do
  echo -n "*"
  done
echo " "
done
#第二段,输出下半部分的三角形
for ((e=2; e<=o; e++))
do
echo -n " "
  for ((f=1; f<e; f++))
  do
  echo -n " "
  done
  for ((g=o; g>=e; g--))
  do
  echo -n "*"
  done
  for ((h=o; h>e; h--))
  do
  echo -n "*"
  done
echo " "
done

示意图

在这里插入图片描述

以上是关于学以致用,简单做一些shell的入门案例的主要内容,如果未能解决你的问题,请参考以下文章

推荐系统,如何从入门到精通

Shell编程入门

shell 编程入门,一些简单符合命令

一个简单的案例入门 gRPC

一个简单的案例入门 gRPC

初学 go 入门-案例-教程-记录(13)orm 框架 Gorm 简单案例 - 连接sqlserver,并查询数据