一、shell脚本特殊变量

1、shell中常用特殊位置变量说明:

$0  获取当前执行的shell脚本的文件名,如果执行脚本包含了路径,那么就包含了脚本路径

$n  获取当前执行的shell脚本的第n个参数值,n=1-9,表示第1,...,9个参数值,当n大于9时,则用大括号{ } 括起来,如${10},脚本接的参数以空格隔开

$#  获取当前执行的shell脚本后面接的参数总个数

$*  获取当前shell脚本所有传参的参数,不加双引号时,与$@的作用相同,加双引号时,如"$*",则表示将所有参数作为单个字符串,如"$1 $2 $3"

$@   获取当前shell脚本所有传参的参数,不加双引号时,与$*的作用相同,加双引号时,如"$@",则表示将所有参数作为独立的字符串,相当于"$1" "$2" "$3"

2、shell中常用特殊状态变量说明:

$?  获取执行上一个指令的执行状态返回值(0为成功,非0为失败)

$$  获取当前执行的shell脚本的进程号(PID)

$!  获取上一个在后台工作的进程的进程号(PID)

$_  获取在此之前执行的命令或脚本的最后一个参数

二、变量子串相关

1、变量子串常见操作

${parameter}

返回变量$parameter的内容

${#parameter}

返回变量$parameter内容的长度(按字符),也适用于特殊变量

${parameter:offset}

在变量${parameter}中,从位置offset之后开始提取子串到结尾

${parameter:offset:length}

在变量${parameter}中,从位置offset开始提取长度为length的子串

${parameter#word}

从变量${parameter}开头删除最短匹配的word子串

${parameter##word}

从变量${parameter}开头删除最长匹配的word子串

${parameter%word}

从变量${parameter}结尾删除最短匹配的word子串

${parameter%%word}

从变量${parameter}结尾删除最长匹配的word子串

${parameter/pattern/string}

使用string代替第一个匹配的pattern

${parameter//pattern/string}

使用string代替所有匹配的pattern

${parameter:-word}

如果parameter的变量值为空或未赋值,则会返回word字符串并代替变量的值

用途:如果变量未定义,则返回备用的值,防止变量为空值或因未定义而导致异常

${parameter:=word}

如果patameter的变量值为空或未赋值,则设置这个变量值为word,并返回其值,位置变量与特殊变量不适用

用途:基本同上一个${parameter:-word},但变量又额外给patameter变量赋值了

${parameter:?word}

如果parameter的变量值为空或未赋值,那么word字符串将被作为标准错误输出,否则输出变量的值

用途:用于捕捉由于变量未定义而导致的错误,并退出程序

${parameter:+word}

如果parameter的变量值为空或未赋值,则什么都不做,否则word字符串将替代变量的值

用途:用于测试变量是否存在,如果paramete变量r的值为word,则说明paramete变量有值

转载于:https://www.cnblogs.com/hovin/p/11243749.html

shell脚本特殊变量与变量子串相关知识相关推荐

  1. shell 脚本实战笔记(7)--集群网络相关知识和环境搭建

    前言: 对网络相关的知识, 做下笔记. 包括IP地址A/B/C的分类, 静态地址的配置/DNS配置, 以及网卡相关信息查看. *) A/B/C/D类网络地址的划分 IP地址=网络地址+主机地址 或 I ...

  2. linux之基础shell脚本编程1 基础变量赋值

    本章主要介绍函数的基础,变量赋值,逻辑运算,条件表达式,测试 linux之基础shell脚本编程1  基础变量赋值 linux之基础shell脚本编程2 if语句循环判断 linux之基础shell脚 ...

  3. shell脚本中的特殊变量与if条件测试

    1.特殊变量 实际工作中我们不可避免的遇到一些xxxx.sh脚本文件,实际阅读shell脚本代码时经常会遇到很多特殊变量(例如:$0.$n.$#.$@.$*.$?.$$等),我们常常会被这些特殊符号折 ...

  4. shell脚本中特定符合变量的含义

    shell脚本中特定符合变量的含义: $#   传递到脚本的参数个数 $*    以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 $$    脚本运行的当前进程PID号 ...

  5. Shell脚本基础 、 使用变量 、 条件测试及选择 、 列表式循环案例

    Shell脚本基础 . 使用变量 . 条件测试及选择 . 列表式循环案例 1 案例1:Shell脚本的编写及测试 1.1 问题 1.2 方案 1.3 步骤 2 案例2:重定向输出的应用 2.1 问题 ...

  6. shell脚本编程规范与变量

    shell的作用: 环境: 平台:VMware workstation 14 系统:CentOS Linux release 7.4.1708 (Core) 编写第一个shell脚本:   注: sh ...

  7. linux脚本变量运算符,linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)...

    Shell 脚本基础 1.变量 什么是变量 #a=1 # echo $a 1 变量:可以变化的量 1.2变量名称注意事项 变量名不能以数字开头 不能与系统中已有的环境变量重名,尽量不要全部使用大写,尽 ...

  8. 检查在Unix Shell脚本中设置环境变量的简洁方法是什么?

    我有一些Unix shell脚本,在开始做事之前,我需要检查某些环境变量是否已设置,因此我要执行以下操作: if [ -z "$STATE" ]; thenecho "N ...

  9. shell脚本中定义路径变量出现的BUG

    =========================================================================== if 语句中的定义路径变量 引发命令的PATH路 ...

最新文章

  1. slor6.6 在linux下的安装以及启动失败解决办法
  2. 类与面向对象的精华:继承【C++继承】
  3. 数据挖掘应用实战-一文教你如何全面分析股市数据特征
  4. SQLAlchemy 简单笔记
  5. Ubuntu 18 LTS netplan 网络配置
  6. Duplicate File Finder pro如何查找删除相似照片
  7. mysql日期函数大全_MYSQL教程mysql日期时间函数大全 mysql函数大全
  8. 手动调整 HP ML350 Gen9 服务器风扇转速
  9. 备案网站建设方案书模板
  10. Unity Scene视图介绍
  11. 本地打印后台处理程序服务没有运行
  12. mhl数据线_mhl接口有什么作用
  13. ROS多设备组网(WSL+miniPC+Nv Orin)
  14. 百度文字识别官方Demo
  15. 【权威发布】360追日团队:Xshellghost技术分析——入侵感染供应链软件的大规模定向攻击
  16. JavaWeb开发基础:Application的知识点简述
  17. iText7高级教程之html2pdf——6.在pdfHTML中使用字体
  18. 分享一个简单好看的html的表格table(个人简历的html表格),vue table,以及vue打印(简单好用的vue打印插件)
  19. 【无标题】ARCGIS 多个线段组成区域如何转面
  20. 基因表达数据中信息基因和基因调控网络 第六周报告

热门文章

  1. iOS 开发笔记-加载/初始化
  2. MySQL的性能调优工具
  3. idea中刷新maven依赖,总是拉不下来
  4. Stanford Parser的学习之开篇(一)
  5. POJ-1328(Greedy,Vector,Sort,Iterator)
  6. python读usb_使用Python来操作Microchip安全芯片
  7. 执行git clone拉取代码出现错误RPC failed,curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054解决方法
  8. 对象——从现实世界的抽象(*)
  9. 我竟然用git send-mail通过QQ邮箱提交了push request
  10. “小程序”的最佳入口位置--关于微信小程序的思考笔记