• Linux Shell学习笔记


    Shell脚本

    Shell脚本命令的工作方式有两种:交互式和批处理

    • 交互式(Interactive):用户每输入一条命令就立即使用并返回结果
    • 批处理(Batch):由用户需要先编写Shell脚本,Shell会一次性的执行脚本中所有命令

    查看当前用户所使用的SHELL解释器:echo $SHELL

    Shell脚本文件一般默认使用 .sh 结尾

    #!/bin/bash
    #我是一个注释
    pwd
    ls -al
    
    1. 第一行是脚本声明( #! ),告诉系统使用哪种Shell解释器来执行该脚本
    2. 第二行的注释信息( # ) 是对脚本功能和某些命令的介绍信息
    3. 第三、四行则是Linux的命令

    Linux运行Shell脚本文件有两种方式;第一种方式是通过 bash example.sh 执行该脚本文件,解释器会忽略 脚本声明( #! );第二种是通过 ./example.sh 执行脚本文件,脚本会通过脚本声明( #! )来进行解释执行

    脚本内置变量解释
    $0 当前Shell脚本程序的名称
    $# 参数的总数
    $* 所有位置的参数值
    $? 上一次命令的执行返回值
    $N 对应第N个位置的参数值

    变量之间用空格间隔

    [ 条件表达式 ] 方括号两侧具有一个空格

    文件测试语句

    运算符作用
    -d 测试文件是否为目录类型
    -e 测试文件是否存在
    -f 测试是否为一般文件
    -r 测试当前用户是否有权限读取
    -w 测试当前用户是否有权限写入
    -x 测试当前用户是否有权限执行

    逻辑运算符

    运算符作用
    && 逻辑 ”与“;条件测试语句的前一个判断结果为true才会执行后面紧挨的命令
    || 逻辑 ”或“;表示前面的命令执行失败才会执行后面的命令
    ! 逻辑 ”非“;条件测试语句的判断结果取反值

    整数比较运算符

    运算符作用
    -eq 是否等于
    -ne 是否不等于
    -gt 是否大于
    -lt 是否小于
    -ge 是否大于或等于
    -le 是否小于或等于

    字符串比较运算符

    运算符作用
    = 比较字符串内容是否相同
    != 比较字符串内容是否不同
    -z 判断字符串内容是否为空

    流程控制语句

    if

    if条件测试语句可以让脚本根据实际情况自动执行相应的命令;if语句分为 单分支结构、双分支结构、多分支结构

    if 条件测试语句
       then
         命令序列
         。。。
       [elif
         命令序列
         。。。]
       [else
         命令序列
         。。。]
    fi
    

    for

    执行前已经确定范围的可以使用for循环

    for 变量名 in 取值列表
    do
      命令序列
      。。。
    done
    

    while

    执行前不确定最终执行的次数

    while 条件测试语句
    do
        命令序列
    done
    

    case

    case语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;而如果数据不在所列出的范围内,则会去执行 星号(*) 中所定义的默认命令

    case 变量值 in
    模式1)
       命令序列1
       ;;
    模式2)
    	命令序列2
    	;;
    .......
    *)
    	默认命令序列
    esac
    

    其他

    /etc/passwd文件保存的是用户账户等信息

    /dev/null 被称为Linux黑洞的文件

    复制请注明出处,在世界中挣扎的灰太狼
  • 相关阅读:
    Could not load file or assembly Microsoft.SqlServer.management.sdk.sfc version 11.0.0.0
    代码覆盖率 (Code Coverage)从简到繁 (一)
    vscode配置自动格式化eslint 配置模板
    无效的源发行版: 10
    java读取一个文件写入另外一个文件
    notepad++使用正则表达式匹配
    jsp页面返回字符串而非方法执行后取得的数据?
    maven的原始setting.xml文件,自带阿里云镜像,之前配的时候出错,保存一下,注意可以在localRepository处设置存储依赖的地址,大概在49到54行,我的是<localRepository>F:/MavenRepository</localRepository>,F盘要先有这个文件夹
    Java 8 lambda Stream list to Map key 重复 value合并到Collection
    BufferedReader.readLine()读取文件
  • 原文地址:https://www.cnblogs.com/XingXiaoMeng/p/13019820.html
Copyright © 2020-2023  润新知