shell变量基础
shell 变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。所以若要进行数学运算,必须使用一些命令例如let、 declare、expr、双括号等。shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell中可用。而环境变量则可以在创建 它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。变量名必须以字母或下划线字符开头。其余的字符 可以是字母、数字(0~9)或下划线字符。任何其他的字符都标志着变量名的终止。名字是大小写敏感的。给变量赋值时,等号周围不能有任何空白符。为了给变 量赋空值,可以在等号后跟一个换行符。用set命令可以查看所有的变量,unset   var命令可以清除变量var,var相当于没有定义过。readonly var可以把var变为只读变量,定义之后不能对var进行任何更改。对shell变量的引用方式很多,用这些方式可以方便的获取shell变量的值,变 量值的长度,变量的一个字串,变量被部分替换后的值等等。

本地变量:作用域为整个bash进程

set VARNAME=VALUE

局部变量:作用域为当前代码段

local VARNAME=VALUE

环境变量:作用域为当前shell进程及其子进程;
export VARNAME=VALUE
VARNAME=VALUE
export VARNAME

位置变量
$1, $2, ...

特殊变量:
$0:当前脚本的文件名
$num:num为从1开始的数字,$1是第一个参数,$2是第二个参数,${10}是第十个参数
$#:传入脚本的参数的个数
$*:所有的位置参数(作为单个字符串)
$@:所有的位置参数(每个都作为独立的字符串)。
$?:当前shell进程中,上一个命令的返回值,如果上一个命令成功执行则$?的值为0,否则为其他非零值,常用做if语句条件
$$:当前shell进程的pid
$!:后台运行的最后一个进程的pid
$-:显示shell使用的当前选项
$_:之前命令的最后一个参数

转载于:https://blog.51cto.com/wangyongbin/1633889

马哥学习笔记——shell变量类型相关推荐

  1. 木纹标识lisp_AutoLisp学习笔记:变量类型

    关于变量的几个概念: 1.符号 符号(SYMBOL)可以理解为标识,用来作为变量.函数的名字.它的命名规则是不能只含数字,可以由下列字符以外的任何可打印的字符所组成: "(".&q ...

  2. 马哥 mysql_马哥学习笔记十五——MySQL进阶之SQL语句

    数据库: create database|schema [if not exists] db_name [character set =] [collate =]; alter database dr ...

  3. 马哥学习笔记二十七——IO复用

    I/O动作模式 阻塞 非阻塞 I/O复用 信号驱动 异步 转载于:https://www.cnblogs.com/wangyongbin/p/3817353.html

  4. 马哥 mysql_马哥学习笔记五——MYSQL初步

    1.mysql -u USERNAME -p -h MYSQL_SERVER linux:socket windows:memory 2.交互式模式中的命令类别 客户端命令 服务器端命令 必须使用语句 ...

  5. 马哥mysql,马哥学习笔记五MYSQL初步

    1.mysql -u USERNAME -p -h MYSQL_SERVER linux:socket windows:memory 2.交互式模式中的命令类别 客户端命令 服务器端命令 必须使用语句 ...

  6. 马哥 mysql_马哥学习笔记十八——MySQL进阶之日志管理

    错误日志:log_error,log_warnings 服务器启动和关闭过程中的信息 服务器运行过程中的错误信息 事件调度运行一个事件时产生的信息 在从服务器上启动从服务器进程时产生的信息 一般查询日 ...

  7. Go圣经-学习笔记之复合类型(二)

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇 Go圣经-学习笔记之复合类型 下一篇 Go圣经-学习笔记之复合数据结构(三) map介绍和简单使用 map是一种无序的 ...

  8. c语言存储类型关键字作用,c语言学习笔记.关键字.存储类型关键字等

    关键字const 1.修饰变量. 修饰的对象为常量,只读. 2.修饰指针. const 也可以和指针变量一起使用,这样可以限制指针变量本身,也可以限制指针指向的数据. const 离变量名近就是用来修 ...

  9. Polyworks脚本开发学习笔记(五)-变量使用基本语法

    Polyworks脚本开发学习笔记(五)-变量使用基本语法 定义变量及赋值 定义各种类型的变量 定义变量时,只需要使用DECLARE 关键字即可定义,为了区别变量和脚本中的其它字符,建议都以小写v开头 ...

最新文章

  1. access的未来发展 ieee_传感器行业发展路在何方 多国专家齐聚来一场头脑风暴
  2. Windows 脚本系列之四—映射网络盘脚本
  3. 第四次作业,孙保平034
  4. 关于JavaScript中的同步(SYNC)和异步(ASYNC)
  5. 【工具】WPS安卓电脑无广告版
  6. 用php打印九九乘法表,php如何打印出九九乘法表呢?
  7. java演练 循环嵌套 菱形图案的打印 四个阶段完成输出
  8. CSS3渐变——线性渐变
  9. Linux中的df命令
  10. 处理SQLServer死锁
  11. 【开源】一个有趣的文字冒险游戏
  12. php在线中文转英文,thinkphp页面的多语言切换,中文、英文之间的转换
  13. 计算机相关期刊阅读,计算机核心期刊.doc
  14. Golang开发环境LiteIDE的设置
  15. 何谓差模信号?何谓共模信号?
  16. Python 与量化分析
  17. 【Metal2剖析(三):OIT顺序无关透明渲染[Imageblock]】
  18. linux修改文件名字
  19. macos 旧版本 lightroom 找不到新镜头配置文件 新镜头配置导入lr/ps
  20. 压力测试ab安装 linux,Centos8下安装ab压力测试工具及ab命令详解

热门文章

  1. AspectJ切入点语法详解
  2. LA4851餐厅(求好的坐标的个数)
  3. hdu2067 简单dp或者记忆化搜索
  4. 【Android 逆向】IDA 安装 ( 使用 IDA 分析 so 动态库 )
  5. 【Android RTMP】NV21 图像旋转处理 ( 问题描述 | 图像顺时针旋转 90 度方案 | YUV 图像旋转细节 | 手机屏幕旋转方向 )
  6. 【Netty】Netty 核心组件 ( ChannelPipeline 中的 ChannelHandlerContext 双向链表分析 )
  7. 【Netty】NIO 通道 ( Channel ) 组件
  8. DOM-添加元素、节点
  9. Nginx初学第一步
  10. js中iframe访问父页的方法