脚本编程–变量

在C或者C++语言中定义变量必须指定类型,类型决定了开辟多大的内存空间。但是脚本程序定义变量和编译型语言完全不同

本地变量:用户自己定义的变量

脚本程序中变量不谈类型,定义变量只需要变量名和变量的值
命令:echo==print 都是打印的命令,只不过echo比print出现早

  1. 原样打印字符串:echo str
  2. 打印变量值 : echo $str :意思是取str变量的值
  3. 双引号–>意思是弱引用,并不能影响到对变量的取值,只是标识双引号内的数据是一个整体
  4. 单引号–>意思是强引用,可以将单引号内的内容原样输出,单引号内的变量已经失去了取值的能力,已经变成了像C语言字符串常量
  5. 定义变量时等号两边不能有空格

变量获取值

方式一:用户定义时直接赋值

bat echo打印变量 shell 打印变量_shell

方式二:变量给变量赋值或者一个命令执行的结果给一个变量赋值

bat echo打印变量 shell 打印变量_bat echo打印变量_02


bat echo打印变量 shell 打印变量_bat echo打印变量_03

方式三:从键盘获取值

bat echo打印变量 shell 打印变量_双引号_04

方式四:将命令执行的结果赋值给变量
方法1:$()

bat echo打印变量 shell 打印变量_单引号_05

方法2:使用反引号将命令引入

bat echo打印变量 shell 打印变量_shell_06

方式五: 对变量值进行自加
方法1:let命令

bat echo打印变量 shell 打印变量_单引号_07

方法2:expr

bat echo打印变量 shell 打印变量_bat echo打印变量_08

环境变量:

父进程定义好的变量,子进程继承过来的变量
简单来讲,自己没有定义该变量,但是可以使用该变量

$PATH:默认可执行文件存放的地点

bat echo打印变量 shell 打印变量_赋值_09


$PS1:一级提示符

bat echo打印变量 shell 打印变量_bat echo打印变量_10


bat echo打印变量 shell 打印变量_单引号_11

$0:当前shell脚本的名字
$#:传递给脚本的参数个数
$$:解释脚本程序的解释器进程的id

bat echo打印变量 shell 打印变量_shell_12

参数变量

脚本程序如何拿到参数
$1,$2,$3…$9 :脚本程序的参数
$* :传递给脚本程序的所有参数

获取传递给脚本的参数

bat echo打印变量 shell 打印变量_单引号_13


bat echo打印变量 shell 打印变量_shell_14

bat echo打印变量 shell 打印变量_bat echo打印变量_15