shell脚本中变量的定义方法
##变量的定义
1.定义本身
变量就是内存一片区域的地址
2.变量存在的意义
命令无法操作一直变化的目标
用一串固定的字符来表示不固定的目标可以解决此问题
#环境级别
export a=1
环境关闭则失效
#用户级别
vim ~/.bash_profile
#系统级别
vim /etc/profile
export a=2 不建议!
or
vim /etc/profile.d/westos.sh
source /etc/profile.d/westos.sh
关闭:
unset a
rm -rf /etc/profile.d/westos.sh
EG:
[root@a ~]# echo $PS1
[\u@\h \W]\$
[root@a ~]# PS1='LINUX >' 修改左边的符
##变量的转译
\ 转译但个字符
“” 弱引用 不能转译 \ $ !
‘’ 强引用
#声明
[root@a ~]# a=1
[root@a ~]# echo ${a}b
1b
[root@a ~]# echo $ab
#变量的数组
[root@a ~]# a=(1 2 3 4 5)
[root@a ~]# echo ${a[0]} 第一个
1
[root@a ~]# echo ${a[-1]} 最后一个
5
[root@a ~]# echo ${a[*]} 全部
1 2 3 4 5
[root@a ~]# echo ${a[@]} 全部
1 2 3 4 5
[root@a ~]# echo ${a[@]:0:3} 从第一个往后3个
1 2 3
[root@a ~]# echo ${#a[@]} 数组数量
5
[root@a ~]# unset a[0] 删除数组里的第一个
[root@a ~]# a[0]=1 添加第一个
[root@a ~]# echo ${a[@]}
1 2 3 4 5
#linux中命令的别名设定
alias xie=‘vim’ 临时设定
vim ~/.bashrc
alias xie=‘vim’ 只针对与用户生效
vim /etc/bashrc 最下面
alias xie=‘vim’ 针对所有用户
unalias xie 删除当前环境的alias
#用户环境变量的更改
vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/mnt 针对用户
所有配置文件改完都要 source 一下
#直接利用命令执行结果
$() 优先执行
####脚本中的传参
非交互模式:
$0 is / mnt/test.sh #脚本本身
$1 is westos #脚本后所输入的第一串字符
$2 is linux
$3 is lcf
$* is westos linux lcf #脚本后所输入的所有字符"westos linux lcf"
$@ is westos linux lcf #脚本后所输入的所有字符’westos’ ‘tinux’ ’ lcf’
$# is 3 #脚本后所输入的字符串个数
交互模式:
read WESTOS #对westos赋值