shell脚本中的变量

什么是变量
变量就是内存一片区域的地址
变量存在的意义
命令无法操作一直变化的目标
用一串固定的字符来表示不固定的目标可以解决此问题
shell中脚本变量的定义方法
环境级别
export a=1
shell脚本中的变量
这种变量设置在退出环境后消失
shell脚本中的变量
用户级别
vim /root/.bash_profile
shell脚本中的变量

环境变化后依然存在
shell脚本中的变量

切换用户,无法使用
shell脚本中的变量
系统级别
vim /etc/profile(主配置文件)
shell脚本中的变量
输出时可以发现系统级别的优先级高于用户
shell脚本中的变量
vim /etc/profile.d/westos.sh (profile.d目录下都是子配置文件)
shell脚本中的变量

shell脚本中的变量
变量的转译
\:转译单个字符
例如
vim check.sh
shell脚本中的变量
运行脚本
shell脚本中的变量
转译

shell脚本中的变量
运行脚本
shell脚本中的变量
“”:弱引用,批量转译个数字符,不能转译“\” “`” “$” “!”
shell脚本中的变量shell脚本中的变量

‘’:强引用 批量转译字符
shell脚本中的变量shell脚本中的变量
变量的声明
a=1
echo $ab
shell脚本中的变量
echo ${a}b
shell脚本中的变量
变量的数组
${a[0]}
shell脚本中的变量
${a[-1]}
shell脚本中的变量
${a[*]}
shell脚本中的变量
${a[@]}
shell脚本中的变量
*和@的区别
在这个实验中*代表"1 2 3 4 5" 一次打印
@则代表“1” “2” “3” “4” “5” 分开
可以用for循环证明
vim for.sh
shell脚本中的变量
只循环了一次
shell脚本中的变量
vim for.sh
shell脚本中的变量
循环了五次
shell脚本中的变量
脚本练习
sh users_create.sh userfile passfile
userfile中的用户会被全部建立且密码与passfile对应
vim userlist
shell脚本中的变量

vim passlist
shell脚本中的变量
vim users_create.sh
shell脚本中的变量
shell脚本中的变量
脚本测试
shell脚本中的变量
linux中命令的别名
alias zz=‘vim’ 临时设定
查看结果 zz
shell脚本中的变量
退出环境测试
shell脚本中的变量
针对用户生效
vim /root/.bashrc
shell脚本中的变量
测试zz
shell脚本中的变量
退出环境测试
shell脚本中的变量
切换用户测试
shell脚本中的变量
系统级别的别名
vim /etc/bashrc
shell脚本中的变量
切换用户测试 su - westos
shell脚本中的变量
删除别名
删除配置文件中添加的内容,查看别名
shell脚本中的变量
删除当前环境中的别名
unalias zz
shell脚本中的变量
用户环境变量的更改
环境变量:用户在操作系统时使用到的命令搜索路径
设定方式
用户级别
vim /root/.bash_profile
shell脚本中的变量
vim /mnt/westos.sh
shell脚本中的变量

此时不需要绝对路径就可以运行/mnt脚本
shell脚本中的变量
利用命令执行的结果设置变量
直接利用命令的执行结果
$()|`` 优先执行
例如 $(cat /etc/passwd)

‘cat /etc/passwd’
脚本中的传参
非交互模式
vim /mnt/westos.sh
shell脚本中的变量
运行,可以看出$0代表脚本本身
shell脚本中的变量

vim /mnt/westos.sh
shell脚本中的变量
运行,$1代表脚本后的第一串字符
shell脚本中的变量
vim /mnt/westos.sh

shell脚本中的变量
运行 ,$2代表脚本后的第二个字符串
shell脚本中的变量
vim /mnt/westos.sh
shell脚本中的变量
$*代表脚本后所根的所有字符
shell脚本中的变量
vim /mnt/westos.sh
shell脚本中的变量

[email protected]代表脚本后所跟的所有字符,与$*的区别和数组相同
shell脚本中的变量
vim /mnt/westos.sh
shell脚本中的变量
$#代表脚本后所跟字符串的个数
shell脚本中的变量
交互模式传参
read
vim /mnt/westos.sh
shell脚本中的变量
sh westos.sh
shell脚本中的变量
read -p “xxxxxxxxxx” XXX -s:隐藏输入内容
shell脚本中的变量

shell脚本中的变量
脚本函数
定义:程序的别名
作用:在写脚本时可能会遇到多处重复字符,这时就可以使用函数
设定方式
NAME(){
内容
}
NAME 在脚本中就代表了函数内容
例如
vim westos.sh
shell脚本中的变量
运行:效果与ECHO函数效果一致
shell脚本中的变量