shell

#!/bin/bash表示脚本的解释器(即用什么命令执行,也可以是python啥的),如果没有的话,不能直接执行shell脚本
在写脚本时,有一些好习惯:注释文件的作用,作者,日期,source加载profile

  • 变量
    (1)变量赋值,前后都不能有空
    在这里插入图片描述
    (2)变量的使用:需要加上$
    在这里插入图片描述
    (3)把ls -l执行的结果赋给变量a(使用反引号)
    shell_第1张图片
    (4)常用变量
    $?用于判断上一个执行的命令是否执行成功(成功为0)
    在这里插入图片描述
  • 传参
    $1表示第一个位置
    shell_第2张图片
    用单引号引起来,就是一个参数了
    在这里插入图片描述
  • if和else语法
    If和fi只是表示开头和结尾,方括号才表示判断,而且方括号里面的空格不能少,只要有方括号就必须有then
    shell_第3张图片
    对整型做判断,两边都不写引号: 在这里插入图片描述
    对字符串做判断,需要加引号:== >= <= > <
    在这里插入图片描述
    在这里插入图片描述
    前面加上x_表示极端情况下不报错(例如变量为空)
    文件的判断:-e(文件名或者目录名是否存在) -f(是否是文件并且存在)-d(是否是目录并且存在) 存在则返回0
    变量的判断:-n(字符串不为空返回0) -z(字符串为空返回0)

其他的if写法(这样写比较简洁)
&&:与要求前后都为真,如果与的前面为假,当前命令直接就不执行了
||:或要求两边只有一个为真
shell_第4张图片
也可以在命令行里面执行
在这里插入图片描述

  • for循环
    在这里插入图片描述
    在这里插入图片描述
    也可以放在命令行里面执行
    在这里插入图片描述
    shell_第5张图片
  • break或者continue
    注意|传的是前面所有命令执行的内容
    执行continue就退出当前循环,继续下一次的循环;break所有的循环都终止
    shell_第6张图片
  • while循环
    判断都是方括号
    shell_第7张图片
    死循环,ctrl+c强制退出
    shell_第8张图片
    while read line,line是一个变量
    shell_第9张图片
    在这里插入图片描述
    管道符的方式会产生子进程
    下面这种方式不产生子进程
    shell_第10张图片
    shell_第11张图片
  • read交互
    Read 变量:从键盘敲入的hi被捕获
    shell_第12张图片
    在这里插入图片描述
    -s参数:进行输入的时候,不会显示出来
    Read -s 变量
  • Selsect交互,固定的交互:PS3(进行选择)
    shell_第13张图片

在这里插入图片描述

你可能感兴趣的:(【Linux】)