zoukankan      html  css  js  c++  java
  • [Linux]Shell的运算符和特殊变量

    说起Shell脚本,免不了用变量。特别是对于这种一堆符号表示变量的语言来说,你不了解一下相关变量的本意,根本无从下手。譬如写个循环遍历,$#就起了好大作用。所以还是有必要记录一下,也是对学习的一个笔记,方便以后查找。

    另外有一些运算符也相当有意思。

    //---------------------分割线,下文为笔记内容-------------------------

    变量相关的命令
    export, readonly
    export:用于修改或打印变量
    readonly:设置变量为只读
     
    替换运算符
    ${var:-word}     如果var存在且非null,返回它的值;否则返回word
    ${var:=word}   如果var存在且非null,返回它的值;否则将word赋值给var,并返回var的值 
    ${var:?word}    如果var存在且非null,返回它的值;否则显示var:word
    ${var:+word}     如果var存在且非null,返回word;否则返回null
     
    注:冒号(:)可省略
     
    模式匹配运算符
    ${var#pattern}    匹配前缀(最小匹配),并返回余下内容
    ${var##pattern}    匹配前缀(最大匹配),并返回余下内容
    ${var%pattern}    匹配结尾(最小匹配),并返回余下内容
    ${var%%pattern}    匹配结尾(最大匹配),并返回余下内容
     
    注:pattern为正则表达式匹配
     
    算术运算符
    Shell的算术运算符基本上与C一致,就不多说了。
    算术运算符可以放置在$((...))里面,也就是内嵌算术,也称为算术展开。譬如 echo $((2>1)) 打印结果为1。(1表示真,0表示假)
     
    特殊变量
    $#    表示变量的个数,常用于循环
    $@    当前命令行所有参数。置于双引号中,表示个别参数
    $*    当前命令行所有参数。置于双引号中,表示将命令行所有参数当初一个单独参数
    $-(连字号)    在引用数给予Shell的选项
    $?    表示上一个命令退出的状态
    $$    表示当前进程编号
    $0    表示当前程序名称
    $!    表示最近一个后台命令的进程编号
    $HOME    表示当前用户根目录
    $IFS    表示内部的字段分隔符
    $LANG    当前locale默认名称
    $PATH    环境变量
    $PPID    父进程编号
    $PWD    当前工作目录
     
    $?的参考值
    0    成功退出
    >0    退出失败
    1-125    命令退出失败,失败返回的相关值由程序定义(譬如,程序内退出只执行 exit 2,则返回为2)
    126    命令找到了,但无法执行
    127    命令找不到
    >128    命令因受到信号而死亡

     

  • 相关阅读:
    php-7.0.16 , apache2.4.25 配置
    一次完整的HTTP请求需要的7个步骤
    TypeScript 配置
    React Please wrap your <Route> in a <Routes>
    Typescript node 里使用 multer插件, req 没有 file这个属性
    node 操作mongodb 用 find() 第一个参数无效
    手机请求不到本地服务器 [Error: Network Error]
    模块 ""mongoose"" 没有默认导出。你是想改为使用 "import { Mongoose } from "mongoose"" 吗?
    小程序 自定义 tabBar Component “页面路径“ does not have a method “ 方法名“ to handle event “tap“
    react-native 初始化项目失败
  • 原文地址:https://www.cnblogs.com/rond/p/3543367.html
Copyright © 2011-2022 走看看