zoukankan      html  css  js  c++  java
  • 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黑洞的文件

    复制请注明出处,在世界中挣扎的灰太狼
  • 相关阅读:
    poj 3321 Apple Tree
    hdu 1520 Anniversary party
    Light OJ 1089 Points in Segments (II)
    Timus 1018 Binary Apple Tree
    zoj 3299 Fall the Brick
    HFUT 1287 法默尔的农场
    Codeforces 159C String Manipulation 1.0
    GraphQL + React Apollo + React Hook 大型项目实战(32 个视频)
    使用 TypeScript & mocha & chai 写测试代码实战(17 个视频)
    GraphQL + React Apollo + React Hook + Express + Mongodb 大型前后端分离项目实战之后端(19 个视频)
  • 原文地址:https://www.cnblogs.com/XingXiaoMeng/p/13019820.html
Copyright © 2011-2022 走看看