变量命名规则

  1. 变量名必须以字母或下划线开头,名字中间只能由字母,数字和下划线组成,大小写是区分的
  2. 变量名的长度不得超过255个字符
  3. 变量名在有效的范围内必须是唯一的
  4. Bash中,变量的默认类型都是字符串类型
  5. "用户自定义变量"
  6.    变量自定义的
  7. "环境变量"
  8.    这种变量中主要保存的是和操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
  9. "位置参数变量"  
  10.    这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
  11. "预定义变量"
  12.    Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
  13.    
  14. "可以将一个命令的执行结果赋值给变量,但是需要使用命令替换符号"
  15. [root@ssgao shell]# cat start.sh
  16. #!/bin/bash
  17. echo 'ssgao ai xiaoxiao'
  18. mypath=`pwd` //使用命令替换符,或来获取命令执行结果
  19. echo $mypath

  20. [root@ssgao shell]# cat pwd.sh
  21. #!/bin/bash
  22. mypath=$(pwd) //使用$()来获取命令执行结果
  23. echo $mypath
  24. [root@ssgao shell]# sh pwd.sh
  25. /root/shell

  26. "注意单引号和双引号的区别"
  27. 注意单引号和双引号的区别,""号会把里面的变量值进行输出,''是把内容原封不动的输出,不会识别里面的变量。
  28. [root@ssgao shell]# cat start.sh
  29. #!/bin/bash
  30. echo 'ssgao ai xiaoxiao'
  31. mypath=`pwd`
  32. touch log.log
  33. ifconfig >log.log
  34. patha="当前路径:${mypath}"
  35. pathb='当前路径: ${mypath}'
  36. echo $mypath //输出:/root/shell
  37. echo $patha //输出:当前路径:/root/shell
  38. echo $pathb //输出:当前路径: ${mypath}

自定义变量

  1. '变量名=变量值'
  2.    1) 变量不能使用数字开头
  3.    2) '='左右两侧不能加空格:
  4.    name="jie cao" //变量值有空格需要用""括起来  
  5. "变量调用"
  6.    echo $变量名 //调用变量,在变量名前面加'$'符号
  7.    192:~ aouo$ y=6 //声明变量
  8.    192:~ aouo$ x=5 //声明变量
  9.    192:~ aouo$ z=$x+$y  //调用变量x和变量y
  10.    192:~ aouo$ echo $z //结果为5+6
  11. "变量的叠加"    
  12.    x=123
  13.    x="$x"456
  14.    x=${x}456
  15.    -----------------
  16.    192:~ aouo$ x=123
  17.    192:~ aouo$ echo $x // 结果为123
  18.    192:~ aouo$ x="$x"456
  19.    192:~ aouo$ echo $x //结果为123456  
  20. "查看所有变量"
  21.     [root@ssgao shell]#  set  
  22.     STORM_HOME=/root/storm/apache-storm-1.1.1
  23.     TERM=xterm
  24.     UID=0
  25.     USER=root
  26. "删除变量"
  27.    unset 变量名  
  28.   [root@ssgao shell]# name=ssgao //声明变量
  29.   [root@ssgao shell]# echo $name //输出ssgao
  30.   [root@ssgao shell]# unset name //删除变量
  31.   [root@ssgao shell]# echo $name
  32. -bash: name: unbound variable

位置参数变量

  1. $n
  2. n为数字,$0代表命令本身,$1~$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
  3. $*
  4. 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
  5. $@
  6. 这个变量也代表命名行中所有的参数,不过$@把每个参数区分对待
  7. $#
  8. 这个变量代表命令行中所有参数的个数
  1. 192.168.10.101:shell_start aouo$cat add.sh
  2. #!/bin/bash
  3. no1=$1
  4. no2=$2
  5. no3=$(($no1+$no2))
  6. #变量no3的和是no1加no2
  7. echo $no3
  8. #打印变量no3的值
  9. -------------------------------------------------
  10. 192.168.10.101:shell_start aouo$./add.sh 1 10
  11. 11
  12. -------------------------------------------------
  13. $1 = 1 位置参数1
  14. $2 = 10 位置参数2

预定义变量

  1. $?
  2. 最后一次执行的命令返回状态,如果这个变量的值为0,证明上一次命令正确执行。如果这个变量的值非0
  3. 证明上一个命令执行不正确了
  4. $$
  5. 当前进程的进行号(PID
  6. $!
  7. 后台运行的最后一个进程的进程号(PID)

shell 变量介绍的更多相关文章

  1. shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...

  2. Linux centosVMware shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚 ...

  3. shell脚本(12)-特殊变量介绍

    一.特殊变量介绍: 1.$* :代表所有参数,其间隔为IFS内参数的第一个字元 2.$@ :与*星号类同,不同之处在于不参照IFS 3.$# :代表参数数量 4.$: 代表上一个指令的返回值 5.$- ...

  4. shell编程变量介绍与表达式详解

    shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell ...

  5. 管道符和作业控制、shell变量、环境变量配置文件 使用介绍

    第6周第1次课(4月23日) 课程内容: 8.6 管道符和作业控制 8.7/8.8 shell变量8.9 环境变量配置文件扩展bashrc和bash_profile的区别 http://ask.ape ...

  6. (转)shell变量及扩展

    1.shell变量 shell变量赋值语句为”name=[value]“,等号两边不能有空格,可以给shell变量追加内容”name+=value“,取消shell变量的设置使用”unset name ...

  7. 2.shell变量

    shell的变量的介绍 shell的变量分为系统变量和用户自定义变量系统变量:$HOME, $PWD, $SHELL, $USER等等,这些变量系统已经定义好了,我们可以直接拿来用用户自定义变量:我们 ...

  8. Linux Shell系列教程之(三)Shell变量

    本文是Linux Shell系列教程的第(三)篇,更多shell教程请看:Linux Shell系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.今天就为大家介绍下Shell中的变量 ...

  9. shell变量(二)

    变量名的命名规范: 1.命名只能使用英文字母.数字和下划线,且不能以数字开头: 2.不能存在空格‘: 3.不能使用标点符号: 4.不能使用bash里的关键字(可使用help命令查看保留关键字) 变量的 ...

随机推荐

  1. Bootstrap 4正式发布还有意义吗?

    历经三年开发,前端框架Bootstrap 4正式发布了.然而今天的Web世界已经和当初Mark Otto发布Bootstrap时的情况大为不同,一些开发者由此质疑它的更新是否还有意义. V4版本的主要 ...

  2. 学习笔记23—window10 64位 python2.7 安装liblinear

    最近在使用pythin,因为要使用libsvm,所以到官网去下载libsvm.官网地址为libsvm(https://www.csie.ntu.edu.tw/~cjlin/libsvm/)结果下载下来 ...

  3. Flask-SQLAlchemy基本操作

    db.session.rollback() 回滚"""Role.query.get(2) get查询接收的参数为主键,如果不存在,返回空 >>> Use ...

  4. vux的x-input的源码分析

    <template> <div class="vux-x-input weui-cell" :class="{'weui-cell_warn': sho ...

  5. Asp.net core 学习笔记 ( upload/download files 文件上传与下载 )

    更新 :  2018-01-22  之前漏掉了一个 image 优化, 就是 progressive jpg refer : http://techslides.com/demos/progressi ...

  6. three.js 制作一个简单的圆柱体模型

    <!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - or ...

  7. how-to-view-source-of-chrome-extension

    https://gist.github.com/paulirish/78d6c1406c901be02c2d Option 1: Command-line download extension as ...

  8. 单分子荧光原位杂交(smFISH)

    single-molecule RNA fluorescence in situ hybridization (RNA smFISH) 单分子荧光原位杂交(smFISH)是一种新的基因表达分析方法,能 ...

  9. Android+Struts2实现简单的前后台交互--Android网络编程

    1.下面测试截图,基本过程就是:点击按钮向服务器端发送请求,后台收到请求后给出返回的数据,前台只需要显示服务端数据就可以了.例子很简单能但引发很多思考,博主学了杂七杂八的,这又在来想杂学Android ...

  10. android studio 中的快捷键汇总

    1.Ctrl + B 跳入/跳出方法或者资源文件.将鼠标光标定位到某个方法或者资源id的调用处,按Ctrl + B,将会跳入该方法或者资源文件内部,功能等同于Ctrl + 鼠标左键.如果将鼠标光标定位 ...