shell中的变量
1.变量的定义
#### 定义本身变量就是内存一片区域的地址#### 变量存在的意义#### 命令无法操作一直变化的目标用一串固定的字符来表示不固定的目标可以解决此问题
2.shell脚本中变量的定义方法
#### 环境级别export a = 1在环境关闭后变量失效#### 用户级别vim ~/ .bash_profileexport a = 1#### 系统级别vim / etc / profileexport a = 2vim / etc / profile.d / westos.shexport b = 3## 变量名称#### 变量名称可包含的字符字母下划线 _数字#### 变量名称定义规则不能用数字开头#### 建议 :变量名称短全用大写字符变量名称长用 _ 区分子类WESTOSWestos_LinuxwestoS_Linux
创建一个脚本打印A这个变量,给A赋值,但脚本执行时采集不到A=1,因为我们只在当前shell中设定了A=1,脚本执行会开启新的shell识别不到,
环境声明后,直到shell关闭
用户级声明
系统级别
3.变量的转译
#1) 转译\ # 转译单个字符"" # 弱引用 , 批量转译个数字符 不能转译 " \ " " " "$" " ! "' '# 强引用#2)声明a = 1echo $abecho ${a}b#3)变量的数组a = ( 1 2 3 4 5 )a$[a[ @ ] : 起始元素 id : 元素个数 ]echo ${a[ 0 ]} ## 数组中第一个元素echo ${a[ 1 ]} ## 数组中最后一个元素echo ${a[ * ]} ## 数组中所有元素echo ${a[ @ ]} ## 数组中所有元素echo ${a[ @ ] : 0 : 3 } ## 数组中 13 个元素echo ${#a[ @ ]} ## 数组中元素的个数unset a[n] ## 删除数组中的第 n1 个元素 unset a## 删除 a 这个数组
转译
声明
数组
* 是一个整体
@是单独的个体
添加和删除数组元素
4.Linux中命令的别名设定
alias xie = 'vim'## 临时设定vim ~/ .bashrcalias xie = 'vim'## 只针对与用户生效vim / etc / bashrc ## 针对系统所以用户生效alias xie = 'vim'unalias xie ## 删除当前环境中的 alias
查看别名
5.用户环境变量的更改
设定方式 :~/ .bash_profileexport PATH = $PATH :/ mnt/ etc / bash_profileexport PATH = $PATH :/ mnt
创建一个脚本给予执行权限,我们可以通过绝对路径来执行,但相对路径不行
因为相对路径脚本执行是会在系统环境变量里检索,而mnt目录不在里面,这里面的路径没有westos.sh
其环境别名设定与 变量环境设定一致
6.变量的高级用法
# 1 ) 直接利用命令执行结果$() |## 优先执行TEST = hostname TEST = $(hostname)# 2 ) 脚本中的传参非交互模式 :$ 0 is / mnt / test.sh<! 脚本本身 >$ 1 is westos<! 脚本后所输入的第一串字符 >$ 2 is linux$ 3 is redhat$ * is westos linux redhat<! 脚本后所输入的所有字符 "westos linux redhat" >$ @ is westos linux redhat<! 脚本后所输入的所有字符 'westos' 'linux' 'redhat' >$# is 3<! 脚本后所输入的字符串个数 >交互模式传参 :read WESTOS## 对 westos 赋值read p "please input word : " ## 输出提示语s## 隐藏输入内容
传参
非交互式
交互式
7.脚本函数
定义 :程序的别名设定方式 :WORD(){action1action2}WORD 在脚本中就代表 action1 action2 这两个动作# 练习脚本 #sh create_user.shPlease input username : westoswestos exist < output >> westos is exist > Please input username :westos not existplease input password : 无回显密码此用户会自动建立并且密码为提示后设定的密码并显示 : westos is created并再次提示 Please input username :当 Please input username : exit此脚本推出