#!shell脚本格式决定专业性

  1. #!/bin/bash
  2. #filename:脚本名
  3. #author:作者
  4. #date:时间
  5. #脚本作用

脚本的执行方式  #脚本名为wk.sh

  1. 绝对路径 /root/wk.sh #另开一个shell终端执行
  2. 相对路径 ./wk.sh
  3. sh解释器 sh wk.sh bash一样 bash wk.sh
  4. source 脚本路径( 与. wk.sh)路径相同 #在当前终端执行,在当前终端生效
  5. #除了sh 解释器执行脚本 其他三种执行方式脚本必须有x权限

重定向操作

类型 设备文件 文件描述编号 默认设备
标准输入 /dev/stdin 0 键盘
标准输出 /dev/stdout 1 显示器
标准错误输出 /dev/stderr 2 显示器
类型 操作符 用途
重定向输入 从指定文件读取出书
重定向输出 >    >> 将输出结果指定或追加到文件
标准错误输出 2>  2>> 将错误输出指定或追加到文件
混合输出 &> 输出不论对错 指定到一个文件

变量

自定义变量:

  1. wk=heheheheecho $wk
  2. hehehehe

环境变量:由系统维护的变量

  1. env #查看环境变量
  2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin #用于可执行程序的搜寻路径

位置变量: 通过命令行给脚本传参

  1. $ 对应脚本名 $-8对应8个参数 #shell脚本最多可以直接处理9个参数

预定义变量: bash中内置的变量,不能直接修改

  1. $*和$@ #保存了传递的所有参数
  2. $ #脚本名称
  3. $? #输出状态码
  4. $# #参数个数
  5. $$ #输出脚本的PID

定义变量与输出

  1. 定义一个新的变量
  2. 格式:变量名=变量值
  3. 注意:变量名必须以字母或下划线开头,严格区分大小写(不能以数字开头)
  4. 赋值可使用引号
  5. 单引号:''不引用变量,视$为普通字符
  6. 双引号:""允许通过$调用变量
  7. 反撇好:``$()先取其中的命令,再执行结果

交互式输入输出

  1. 交互式输入
  2. read -p "提示信息" 变量名

局部变量与全局变量

  1. export 变量名
  2. exprot 变量名=变量值
  3. 在全局生成变量

变量的运算

  1. echo $((x+y))

条件判断

 (1)文件判断

  1. -d 判断是否为目录
  2. -e 判断目录或文件是否存在
  3. -f 判断是否为文件
  4. -r -w -x 判断读写执行权限
  5. -L 判断是否为链接文件
  6.  
  7. #格式
    [ -d /root ]
    echo $?
    0

(2)整数判断

  1. -eq 等于
  2. -ne 不等于
  3. -gt 大于
  4. -lt 小于
  5. -ge 大于等于
  6. -le 小于等于
    #格式
    [ 1 -eq 1 ]
    echo $?
    0

(3)字符串判断

  1. [ aaa == aaa ] #字符串内容相同
  2. [ aaa != bbb ] #字符串内容不同
  3. [ -z 字符串 ] #字符串内容为空

(4)逻辑测试

  1. &&而且
  2. ||或
  3. 条件1 && 条件2 || 条件3 #如果条件1成立则执行条件二,不成立执行条件3
  4.  
  5. 条件1 || 条件2 #如果条件1不成立,执行条件2,不论成不成立都继续往下执行条件3
    条件3
  6.  
  7. 条件1 ||{     #如果条件一不成立则执行括号内的条件2和条件3
    条件2
    条件3
    }

if语句

  1. if 条件1;then      #如果 条件1成立;那么
  2. echo           #输出 1          
  3. elif 条件2;then #或者 条件2成立;那么
  4. echo           #输出 2
  5. else        #否者
  6. echo           #输出 3  
  7. fi           #"if结束语"

case语句

  1. case 变量 in #判断一个变量 从上到下依次匹配 匹配及停止
  2. )               #如果变量等于1
  3. echo "hehe"       #输出 hehe
  4. ;;
  5. )               #如果等于2
  6. echo "xixi"       #输出 xixi
  7. ;;
  8. *)               #通配符*匹配所有
  9. echo "zzz"        #输出 zzz
  10. esac              #"case结束语"

sshe函数

  1. 执行脚本
  2. #!/bin/bash
  3. haha(){        #定义一个函数,函数名为haha
  4. echo $1        #函数内的shell语句, 调用函数就会执行函数里的内容
  5. echo $
  6. echo $
  7. echo ${} #2位以上的参数需用大括号括起来让他是一个整体
  8. }
  9. haha 11      #函数可以传参,但是一般不用传参而是直接调用函数名,执行函数里的内容
  10. #执行结果  

shell循环语句

 for循环

唯一无法实现无限循环的循环语句,因为for循环的取值是有限的

  1. #!/bin/bash
  2. for i in `seq `
  3. do
  4. echo $i
  5. done
  6. #输出结果

特殊for循环,C语言循环不属于正规shell语言 (( ))两个括号b表示启用C语言,i++是C语言里自身+1  在循环内用let i++调用

  1. #!/bin/bash
  2. for ((i=;i<;i++)) #引用C语言 i=0并且i<3,i自身+1
  3. do
  4. echo $i
  5. done
  6. #输出结果
  1. #!/bin/bash          #for 无限循环
  2. for ((i=;;i++))       #不设置结束条件,实现无限循环,但结束条件的位置要空出来
  3. do
  4. echo $i
  5. done

while循环

  1. while : #while : 条件一直为真无限循环
  2. do
  3. 命令
  4. done
  1. #!/bin/bash
  2. i=
  3. while [ $i -le ]
  4. do
  5. echo $i
  6. let i++
  7. done
  8. #输出结果

shell脚本4个循环控制语句

exit         终止脚本

break     跳出循环,只跳出离它最近的那次循环

continue  终止本次循环进入下次循环

return     针对函数使用,退出函数体

调用函数

  1. 调用系统函数
  2. . /etc/init.d/functions
  3. action "服务启动" /bin/true

shell 脚本基础与条件判断的更多相关文章

  1. shell脚本编程之条件判断

    条件测试类型: 整数测试 字符测试 文件测试 条件测试的表达式的三种方法: 1.[ expression ] 命令测试 2.[[ expression ]] 关键字测试 3.test expressi ...

  2. Linux shell脚本之 if条件判断 (转)

    IF条件判断 1.基本语法: if [ command ]; then 符合该条件执行的语句 fi 2.扩展语法: if [ command ];then 符合该条件执行的语句 elif [ comm ...

  3. shell编程基础(3)条件判断语句

    1,带参数的shellscript #this is program build 5.11 to test shell script ############ cxz ####### 5.11 ### ...

  4. shell脚本基础 数值运算 判断 及if语句

    数值运算 整数运算[三种,随便掌握一种即可]expr 数字 运算符 数字 [root@ceshiji ~]# expr 1 + 1(运算符号都是+ - * / 注:*需要\*.%是取余,余数只有0 1 ...

  5. shell脚本--分支、条件判断

    在看选择判断结构之前,请务必先看一下数值比较与文件测试 if....else... #!/bin/bash #文件名:test.sh score=66 # //格式一 if [ $score -lt ...

  6. shell脚本-基础

    shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...

  7. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  8. Shell脚本基础学习

    Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...

  9. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

随机推荐

  1. react 预览pdf 转换

    function getReader(response){ return new Promise(function(resolve,reject){ response.blob().then( blo ...

  2. element之input输入搜索联想框

    1. 模板代码 <el-autocomplete :minlength="2" v-model="searchName" :fetch-suggestio ...

  3. 【python+selenium】截取某个元素

    一. selenium截图1.selenium提供了几个截取全屏的方法- get_screenshot_as_file(self, filename) --这个方法是获取当前window的截图,出现I ...

  4. Delphi 编写线程的清除代码

  5. 解决Ubuntu下ssh无法启动

    Ubuntu  ssh一直无法启动. 通过 systemctl status ssh.service  查看到的错误是 Dec 16 13:35:22 iZm5eckxl2tqyka9eoe7b3Z ...

  6. centos 解决 mysql command not found

    执行命令: mysql -V 报错内容: -bash: mysql: command not found 报错原因:系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令 ...

  7. P3384——树链剖分&&模板

    题目描述 链接 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z 操作2: ...

  8. eclipse找不到JadClipse问题

    版本信息: Eclipse Java EE IDE for Web Developers. Version: 2018-09 (4.9.0) 根据以往配置,放在eclipse\plugins下不生效, ...

  9. 题解 [BZOJ4710] 分特产

    题面 解析 step 1 我们先考虑下有人没有的情况吧, 那对于每个特产就是放隔板的情况了, 设\(a[i]\)为第\(i\)个特产的个数, 那么第\(i\)个特产的方案数就是\(C_{a[i]+n- ...

  10. Python2.x与3​​.x版本区别Ⅱ

    除法运算 Python中的除法较其它语言显得非常高端,有套很复杂的规则.Python中的除法有两个运算符,/和// 首先来说/除法: 在python 2.x中/除法就跟我们熟https://www.x ...