一、变量简介

变量的理解:
1)变量是在程序运行过程中值可以变化的量
2)变量是用一串固定的字符来表示不固定的值的一种方法

变量的分类:
在shell中,变量分为环境级变量,用户级变量,系统级变量
环境级变量只在当前shell中生效,shell关闭则变量丢失
用户级变量写在用户的骨文件(~/bash_profile)中,只对当前用户生效
系统级变量被写在系统的配置文件/etc/profile或/etc/profile.d中,对于所有用户都生效

二、shell脚本中定义变量的方法

1、环境级

环境级变量设定方法:
			export  变量=想赋予的值
eg:			export a=1
[root@allen mnt]# a=1            ##给a赋值
[root@allen mnt]# echo "$a"
1
[root@allen mnt]# cat test.sh    ##展示test.sh内容
#!/bin/bash
echo "$a"
[root@allen mnt]# sh test.sh     ##运行脚本
								 ##值为空
[root@allen mnt]# export a=1	 ##使变量提升至环境变量
[root@allen mnt]# sh test.sh 
1								 ##值为1
[root@allen mnt]#

容器中写死环境变量 sh环境变量_环境变量

打开另外一个终端

容器中写死环境变量 sh环境变量_bash_02


可以看到值为空,足以证明环境级变量只在当前终端生效

2)用户级

用户级变量设定方法
vim ~/bash_profile			##在此文件中写要设定的变量
	export b=5				##示例编写内容
source ~/bash_profile		##重新加载文件

截图只是证明设定变量只能该用户使用

容器中写死环境变量 sh环境变量_容器中写死环境变量_03

3)系统级

系统级变量设定方法
vim /etc/profile                 ##在文件最后写入要设定的变量
  export b=100
source /etc/profile

截图只是证明设定变量能多用户使用

容器中写死环境变量 sh环境变量_vim_04

三、常用字符串变量的含义

$0 是脚本本身的名字
$1 脚本后的第一串字符串
$2 脚本后的第二串字符串
$3 脚本后的第三串字符串
$# 脚本后所跟字符串的个数

$* 脚本后跟的所有字符串,模式为“ 1 2 3 ”
$@ 脚本后跟的所有字符串,模式为“ 1”“2”“3

$$ 是当前终端的PID

看图可帮助理解

容器中写死环境变量 sh环境变量_环境变量_05

四、利用命令执行结果设定变量

$? 是命令在执行完成之后产生的退出值,范围是 [0-255]
当 $?=0 时标示命令执行没有错误输出

0表示成功(Zero - Success)

非0表示失败(Non-Zero  - Failure)

2表示用法不当(Incorrect Usage)

127表示命令没有找到(Command Not Found)

126表示不是可执行的(Not an executable)

>=128 信号产生

容器中写死环境变量 sh环境变量_容器中写死环境变量_06


exit也可以设定返回值

容器中写死环境变量 sh环境变量_字符串_07