echo $? 代表上一次命令的状态返回值,‘0’则代表为真《执行成功》,‘非零’则代表为假《执行失败》。

shell脚本: <判断老男孩的年纪>

[root@bogon mnt]# vim oldboy_age.sh
#!/bin/bash
oldboy_age=34 read -p 'his age is :' age if [ $age -eq $oldboy_age ];then
echo 'I always believe you'
elif [ $age -gt $oldboy_age ];then
echo 'try smaller again'
else
echo 'try bigger again'
fi
~
[root@bogon mnt]# chmod +x userdel.sh
[root@bogon mnt]# ./oldboy_age.sh
his age is :12
try bigger again

Part 循环结构

while 循环 

while (条件)                       

do
动作
done

需要无限循环时我们会选择while :

: 永远为真,作为条件可无限循环

《while循环来判断上面老男孩的年纪》

[root@bogon mnt]# vim oldboy_age.sh
#!/bin/bash
oldboy_age=34
while :
do
read -p 'his age is :' age

if [ -z $age ];then   #如果输入为空,则继续输入.
       continue
    fi

if [ $age -eq $oldboy_age ];then
echo 'I always believe you'
break
elif [ $age -gt $oldboy_age ];then
echo 'try smaller again'
else
echo 'try bigger again'
fi
done
~
[root@bogon mnt]# ./oldboy_age.sh
his age is :34
I always believe you

FOR循环  -------- 《批量创建系统用户》

[root@bogon mnt]# vim useradd.sh
#!/bin/bash
for i in {1..10}
do
useradd user$i
done
[root@bogon mnt]# chmod +x useradd.sh
[root@bogon mnt]# ./useradd.sh

--------------------《批量删除用户》

[root@bogon mnt]# vim userdel.sh

!/bin/bash
for i in {1..10}
do
userdel user$i
done [root@bogon mnt]# chmod +x userdel.sh
[root@bogon mnt]# chmod +x userdel.sh
[root@bogon mnt]# ./userdel.sh

练习题:

(1) 测试那些IP能ping通网络

[root@bogon mnt]# ./ping.sh
#!/bin/bash
for i in {1..50};
do
ping -c1 192.168.61.$i &> /dev/null #将ping的过程记录到该文件夹下,不显示在桌面
if [ $? -eq 0 ];then #判断上次命令是否ping成功,$?表示返回上次的命令值
echo "192.168.61.$i successful"
echo "192.168.61.$i" >> /tmp/a.txt #将ping通的IP记录到/tmp/a.txt下
fi
done
[root@bogon mnt]# chmod +x ping.sh
[root@bogon mnt]# ./ping.sh

(2)  查看特定目录下的文件类型《目录文件/链接文件/普通文件有多少?》

[root@bogon mnt]# vim file.sh
if
[ -z file_name ];then
continue
else
break
fi
done
for i in $(ls $file_name)
do
if [ -h $file_name/$i ];then
((link_file+=1))
elif [ -f $file_name/$i ];then
((regular_file+=1))
elif [ -d $file_name/$i ];then
((directory_file+=1))
fi
done
echo "lianjiewenjian: $link_file"
echo "putongwenjian: $regular_file"
echo "directorywenjian: $directory_file"
[root@bogon mnt]# chmod +x file.sh
[root@bogon mnt]# ./file.sh

简单的for循环:

[root@bogon mnt]# vim for.sh

#!/bin/bash
for ((i=1;i<=9;i++))
do
echo $i
done
[root@bogon mnt]# ./for.sh

用户简单登录的测试

[root@bogon mnt]# vim mingling.sh

#!/bin/bash
username='jason'
password=''
tag='true'
while $tag
do
read -p 'username:' name
read -p 'password:' passwd
if [[ $name = $username ]] && [[ $passwd = $password ]];then
echo 'login sucessful'
while $tag
do
read -p '>>> :' cmd
if
[[ $cmd = 'quit' ]];then
tag=false
else
$cmd
fi
done
fi
done [root@bogon mnt]# chmod +x mingling.sh
[root@bogon mnt]# ./mingling.sh

 九九乘法表

[root@bogon mnt]# vim chengfa.sh
#!/bin/bash
for ((i=1;i<=9;i++))
do
for ((j=1;j<=i;j++))
do
echo -n "$i*$j=$[j*i] "
done
echo
done [root@bogon mnt]# chmod +x chengfa.sh
[root@bogon mnt]# ./chengfa.sh

shell脚本结构的更多相关文章

  1. Shell脚本、Shell脚本结构、date命令的用法、变量

    1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构:   #!/bin/bash  以#!/bin/bash开头,即以/bin/ba ...

  2. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  3. shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...

  4. Linux centosVMware shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚 ...

  5. shell脚本结构示例1

    2013年以来自己因为偷懒,少写了很多东西,今年计划把以前积累的总结出来. 先从shell开始写起吧. 干了快3年游戏运维,期间经常会写一些shell本,不少脚本其实有很多可以复用的部分. 按照自己的 ...

  6. shell脚本结构化语句

    本文中记录一下shell中的两种循环语句:for和while for循环 for循环是linux shell中最常用的结构,for循环有三种结构:1.列表for循环.2.不带列表for循环.3.C风格 ...

  7. shell脚本介绍
 shell脚本结构和执行
date命令用法
 shell脚本中的变量

  8. 第三部分shell编程3(shell脚本编写1)

    做监控和备份最多 1. shell脚本是什么它是一种脚本语言,并非编程语言可以使用一些逻辑判断.循环等语法可以自定义子函数是系统命令的集合shell脚本可以实现自动化运维,大大增加我们的工作效率 第一 ...

  9. 《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令

    许多程序要就对shell脚本中的命令施加一些逻辑控制流程. 结构化命令允许你改变程序执行的顺序.不一定是依次进行的 12.1 使用if-then语句 如下格式: if command then     ...

随机推荐

  1. 设置mac笔记本为固定ip

    第一步.点击Mac桌面“系统偏好设置”图标 第二步.在打开的系统偏好设置界面,点击互联网和无线选项中的“网络” 第三步.在网络界面,点击“高级”,进入高级设置.  第四步.在以太网设置界面,在TCP/ ...

  2. 关于 ionic3 tabs 导航ico 点击 页面返回顶部

    类似微信 双击 页面返回顶部功能,ionic3 中有一个 Content. 将 import { Content } from 'ionic-angular'; 放入想要实现此功能的 ts中. 实例化 ...

  3. InternalError (see above for traceback): Blas GEMV launch failed: m=1, n=100

    python tensorflow 运行提示错误:InternalError (see above for traceback): Blas GEMV launch failed:  m=1, n=1 ...

  4. 艾妮记账本Web开发(开发版)

    因为没有办法制作微信小程序版的艾妮记账本所以只能选择做Web开发版,但因为是花时间赶出来到的(但用了我已学的所有Web知识)所以就没有办法按老师的要求写七天的制作过程. 其实真正说起来我的这个Web开 ...

  5. 2440 裸机学习 点亮LED

    1.首先需要知道 led 是受哪一个gpio口控制 从上图可以看出,两个led灯是受GPF4 GPF5控制的,低电平有效. 2.怎么控制GPF4 GPF5 通过2440的芯片手册可以看出,需要设置GP ...

  6. 创建servlet程序知识点详解---servlet-day07

    情景1: 京东在买东西的时候,只有结帐的时候才会要求必须登录账户 #1.状态管理 ##(1)什么是状态管理? 将浏览器与web服务器之间多次交互当做一个整体来处理,并且将多次交互所涉及的数据(即状态) ...

  7. java实现zip压缩和解压工具

    引入ant.jar package com.develop.web.util; import java.io.BufferedInputStream; import java.io.File; imp ...

  8. ESP8266使用笔记之常用固件

    开发板使用的是NodeMCU开发板: 目录 1.学习使用ESP8266官方的SDK         1.1使用SDK提供的AT固件         1.2使用SDK Build固件 2.学习使用Nod ...

  9. PHP防止网页快速刷新+代理ip访问

    前几天网站收到了一些CC攻击,比较郁闷...这里分享一下,防止网页自动刷新的方法以及阻止代理IP访问网站的方法,代码是分开的,两个功能,需要那个用那个,可以自定义时间间隔,这个代码不止可以防CC攻击, ...

  10. Intellij IDEA 修改默认配置

    更新IDEA,是配置无缝对接 idea里面的配置文件主要就idea64.exe.vmoptions,idea.properties 不要更新idea自带的这两个文件,因为在更新IntelliJ IDE ...