Shell脚本

1.批处理式:

2.交互式:

脚本声明   #!/bin/bash

脚本注释   #fakba;kb

脚本命令   ls pwd

bash test.sh   //执行test.sh脚本

echo "$0"      //脚本名称

echo "$#,$"   //总共接收到了几个参数,这些参数分别是什么

echo "$1,$3,$5"   //分别是我们接收到的第1  3    5参数

[ -f  /etc/fstab ]   // 判断文件是否存在

echo $?            //查看文件是否存在,1表示不存在,0表示存在

[ -d /dev  ]   //判断目录是否存在或者是否是一个目录

echo $?     //查看目录是否存在或者是否是一个目录,1表示不存在,0表示存在

&&  //若前面成功,则执行后面的,逻辑与

[ -d /etc ] && echo "ok"    //判断ETC目录存在就在屏幕显示 ok

||    //若前面失败,则执行后面的,逻辑或

[   $user = root ]  || echo "不是他,不是他"  //如果当前登录用户不是root ,则显示不是他

!  //取反值,逻辑非

[ ! $USER = root ]  //判断当前登录用户不是root用户

[ `free -m | grep Mem: | awk '{print $4}‘` -lt 1024 ] && echo "Buzu" || echo "chongzu"

//提取以兆为单位的内存空闲值,小于1024就显示不足,大于1024显示充足

[ -z $HAHA ]    //判断这个变量是否被使用过

echo $?        //查看判断结果

if  [ -e /madia/haha ]    //判断这个文件是否存在

then

mkdir  /madia/haha    //新建一个文件

fi

ping -c 3 -i 0.2  -w 3 $1 &> /dev/null

//ping 3次,间隔0.2秒,最长响映时间3秒,将所有输出信息重定向到一个黑洞文件

if [ $? -eq 0 ]

then

echo "host $1 is on-line“

else

echo "host $1 is off-line"

fi

read  -p "Enter:" GRADE   //读取用户输入的信息

if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then

echo "Excellent"

elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ];then

echo "Pass"

else

echo "Failure"

fi

read -p "Enter:“ PASSWD

for UNAME in `cat users.txt`

do

id $UNAME &> /dev/null

if [ $? -eq 0 ]

then

echo "$UNAME,Already exist"

else

useradd $UNAME &> /dev/null

echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null    //

fi

done

//检测网络在线

for IP int `cat ip.txt`

do

ping -c 3 -i 0.2  -w 3 $1 &> /dev/null

if [ $? -eq 0 ] ; then

echo "$IP is on-line"

else

echo "$IP is off-line"

fi

done

Linux 第四节(shell脚本,IF,do,for)的更多相关文章

  1. PHP面试系列 之Linux(四)---- Shell脚本

    一.脚本执行方式 1.先赋予权限 chmod +x test.sh; 再直接执行 ./test.sh 2.调用解释器使得脚本执行 3.使用source命令 source test.sh 二.编写基础 ...

  2. 自学Linux命令行与Shell脚本之路

    自学Linux命令行与Shell脚本之路[第一回]:初识Linux   1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3  ...

  3. 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  4. 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---47

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  5. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---57

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  6. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---57

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  7. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---56

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  8. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---55

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  9. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---54

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  10. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---53

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

随机推荐

  1. Netty Protobuf处理粘包分析

    背景 最近消息中间件项目进行联调,我负责Server端,使用Java的Netty框架.同事负责Client端,使用Go的net包,消息使用Protobuf序列化.联调时Client发送的消息Serve ...

  2. Vue3 企业级优雅实战 - 组件库框架 - 11 组件库的打包构建和发布

    回顾第一篇文章中谈到的组件库的几个方面,只剩下最后的.也是最重要的组件库的打包构建.本地发布.远程发布了. 1 组件库构建 组件库的入口是 packages/yyg-demo-ui,构建组件库有两个步 ...

  3. Idea未识别maven项目

    https://blog.csdn.net/qq_41460654/article/details/120539509

  4. Vue23 ref属性

    1 简介 在js中,我们获取一个元素可以通过document.getElementById()去获取,在vue中,使用了ref属性来替代id,通过ref属性可以获取html元素以及vue组件实例对象 ...

  5. 2.2.vue用法在uniapp中的使用_

    开发的H5页面可以用div,但是适应小程序的用法,得参考uniapp的组件章节,用view包裹.

  6. rt-thread模糊到清晰系列: timer.c

    #include <rtthread.h> #include <rthw.h> /* hard timer list */ static rt_list_t rt_timer_ ...

  7. 软赢软件控制器在Zstack云主机实现电机控制的方法

    工控领域上云实践-Zstack和软赢 在上面链接提到软赢的软件运动控制器在Zstack云主机上实现etherCat总线的电机控制,在后来的对比中发现,在云主机上虽然实现了让电机转起来,但是因为实时性还 ...

  8. NetApp DataONTAP 集群模式 学习笔记1

    一.NetApp存储操作系统 Data ONTAP是NetApp最流行的存储操作系统,它运行在NetApp FAS(Fabric Attached Storage)系统上.FAS系统是被设计为共享的存 ...

  9. C语言知识补充 --来自菜鸟教程的指针复习

    1.system 打开其他应用 1.指针演练  C 指针. 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址. #in ...

  10. vue中所有的封装方式总结

    如何确定我需要封装呢? 1.复用,如果觉得以后还会用到 2.你觉得方便,别的地方可能也需要用 3.如果不封装,页面代码臃肿的时候 1.封装API 使用场景:业务中最常见最普通的封装 详细在这篇:htt ...