说起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命令因受到信号而死亡

[Linux]Shell的运算符和特殊变量相关推荐

  1. linux命令行的操作符,Linux shell 比较运算符使用方法教程

    Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.对于Linux基础,肯定要掌握的是基本命令和一些重要运算符,这篇文章主要介绍了Linux shell 比较运算符详解 ...

  2. linux shell 除法运算符,Linux shell 基本运算符详解

    shell 支持多种运算符 1.算数运算符2.关系运算符3.布尔运算符4.字符串运算符5.文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,ex ...

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

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

  4. linux shell 三元运算符,语法 - Bash中的三元运算符(?:)

    语法 - Bash中的三元运算符(?:) 有没有办法做这样的事情 int a = (b == 5) ? c : d; 用Bash? 14个解决方案 346 votes ternary operator ...

  5. linux shell 三元运算符,关于语法:Bash中的三元运算符(?:)

    有什么办法可以做这种事吗 int a = (b == 5) ? c : d; 使用BASH? @荷兰语的答案表明,bash确实有类似于"三元运算符"的东西,但是在bash中,这被称 ...

  6. linux shell grep 搜索数据 赋值变量 没有换行符

    问题: 用grep写shell的时候,发现一个很奇怪的问题,当我用命令grep搜索数据时,返回的多行数据时是按每行显示的,但是当我在shell里把这个搜索命令赋值到变量后,输出这个变量,就变成一行输出 ...

  7. linux shell 三元运算符,Bash中的三元运算符(?:)

    有没有办法做这样的事情 int a = (b == 5) ? c : d; 用Bash? #1楼 如果条件只是检查是否设置了变量,那么甚至还有一个较短的形式: a=${VAR:-20} 将要分配给a的 ...

  8. 「Linux」Linux Shell 编程基础入门

    Linux Shell 编程基础入门 1. 变量 1.1 变量定义 1.2 使用变量 1.3 引号 1.4 将命令的结果赋值给变量 1.5 位置参数 1.6 特殊变量及其含义 2. 字符串 2.1 字 ...

  9. Linux shell 自动安装总结

    本文主要针对web项目自动安装shell脚本中常用linux命令总结如下: 1. 将一条命令的执行结果赋值给一个变量: #获取执行脚本的当前路径 zit_script_path=$(cd " ...

最新文章

  1. python的gui库哪个好_常用的13 个Python开发者必备的Python GUI库
  2. 【机器学习入门笔记11:numpy模块实现矩阵的增删改查】20190217
  3. Kali Linux 秘籍 第一章 安装和启动Kali
  4. 日期格式化方法封装,对外暴露使用
  5. flask实现后台java实现前端页面_java实现telnet功能,待实现windows下远程多机自动化发布软件后台代码...
  6. BlackBerry 应用程序开发者指南 第二卷:高级--第7章 与BlackBerry应用程序通信
  7. 好戏常有:CSW和BU撕逼,Cobra劝架
  8. 61. Catalog 分类页面商品排序
  9. 计算机应用基础李波课件,计算机应用基础
  10. 物联网安全综述报告之感知层认证机制
  11. stm32f103呼吸灯(PWM脉冲宽度调制)
  12. idea禁用双击shift、double shift 快捷键
  13. Pycharm中.py文件调用其他.py文件的函数
  14. Spring框架学习笔记05:SpringAop
  15. xcode引入sdk_解决Xcode引入第三方SDK找不到头文件
  16. java导出excel文件_POI生成EXCEL文件
  17. Linux select函数的使用
  18. AIX7.1 安装配置 EMC CLARiiON 存储驱动软件
  19. 使用Aruino Ethernet使ESP32具有以太网通讯能力
  20. 3D Slicer中文教程

热门文章

  1. linux下压缩并分割稀疏文件
  2. UICollectionView自定义布局(二)
  3. 重复调用的代码块——方法
  4. 关于字符编码 转自廖雪峰的官方网站,至今看到最清晰的讲解
  5. thinking in object pool
  6. linux下修改网卡接口名称
  7. 活动目录系列之一:主域控制器的搭建
  8. 我的心愿秀、大家也来秀(show)一下
  9. 实现简单递归c++实现
  10. vmware workstation 下安装ubuntu