shell中的变量
1.变量的定义:
变量即在程序运行过程中它的值是允许被改变的量;变量是用一串固定的字符来标示不固定值的一种方法;变量是一种使用方便的占位符,用于引用计算机的内存地址,该地址可以存储script运行时可更改的程序信息;在shell中变量是不能永久保存在系统中的,必须在文件中声明。
2.变量的种类:
在shell中变量分为环境级变量,用户级变量,系统级变量。
环境级变量只在当前shell中生效,在其他shell中a的值是无效的,shell关闭则变量丢失 如 export a=1
用户级变量写在用户的~/.bash_profile 中,只针对当前用户生效
vim ~/.bash_profile
系统级变量被写在系统的配置文件/etc/profile或者/etc/profile.d中,对于所有的用户都生效
3.变量的命名
用"字符" "_""数字"来对变量进行命名,不能使用数字开头。
建议命名的规则: 变量名称短全用大写,变量名称长用_来区分子类,大写字母开头 如:Skq
4.变量的转译和声明
1) \ 转译单个字符
" " 弱引用,批量转译“”中出现的字符
' ' 强引用,批量转译‘’中出现的字符
"" 是弱引用 不能引用 `` \ ! $
'' 强引用可以引用所有
2)${} 变量声明
A=1
echo $Ab
echo ${A}
3)变量的数组
a=(1 2 3 4 5)
echo=${a=[0]} 表示数组中第一个元素的值
echo=${a=[-1]} 数组中最后一个元素的值
echo=${a=[*]} 数组中全部的值 一串
echo=${a=[@]} 数组中全部的值 有多少值就有多少串
脚本练习:运行creat_user.sh userfile文件中的用户会被建立
5.Linux系统中命令的别名设定
(1)临时设定
alias xie='vim'
(2)用户级别的设定
vim ~/.bashrc
alias xie='vim'
(3)系统级别的设定
vim /etc/profile
alias xie='vim'
unalias xie 删除当前环境中的xie的别名
6.用户环境变量的更改
环境变量:用户在操作系统时使用到的命令搜索路径 比如在任意目录下输入ls 都可列出 若换一个别的命令则无法识别 为解决这个问题 需要指定路径
用户级设定方式: vim ~/.bash_profile
export PATH=$PATH:/mnt
系统级设定方式: vim /etc/profile
export PATH=$PATH:/mnt
7.利用命令的执行结果设定变量
1)直接利用命令执行结果
$() 和`` 如 test=`hostname` test=$(hostname)
2)脚本中的传参
非交互模式: $0 脚本本身
$1 脚本后的第一串字符串
$2 脚本后的第二串字符串
$3 脚本后的第三串字符串
$# 脚本后所跟字符串的个数
$* 脚本后跟的所有字符串,模式为“ 1 2 3 ”
&@ 脚本后跟的所有字符串,模式为“ 1”“2”“3”
测试结果
交互模式传参
- read WESTOS
- read -s WESTOS #加密输入,输入字符不显示
- read -p "input: " WESTOS #提示引号信息
练习题:执行 userctrl.sh add user1 可以添加用户 执行userctrl.sh delete user1 可以删除用户