1.变量的定义
【1】定义本身
变量就是内存一片区域的地址
【2】变量存在的意义
- 命令无法操作一直变化的目标
- 用一串固定的字符来表示不固定的目标可以解决此问题
2.shell脚本中变量的定义方法
【1】环境级别
export a=1
- 在环境关闭后变量失效
重新打开一个shell运行test.sh:运行失败
【2】用户级别
vim ~/.bash_profile
export a=1
- 编辑配置文件:
在另一个shell中运行tset.sh:运行成功
【3】系统级别
在系统里时生效的,除了这个系统外,其余不生效
vim /etc/profile
- 编辑配置文件:
切换用户,可以使用:
切回用户,换一个shell,运行失败,source配置文件,重新运行,运行成功:
【4】变量名称
“字符” 或 “_” 或 “数字”
不能用数字开头
建议:变量名称短用大写字符,变量名称长用_区分子类
WESTOS
Westos_Linux
westoS_Linux
3.变量的转译
【1】转译
\ | 转译单个字符 |
---|---|
" " | 弱引用,批量转译个数字符 不能转译 " \ " " ` " " $ " " ! " |
’ ’ | 强引用 |
批量转译:
【2】声明
命令(a=1时) | 实现内容 |
---|---|
echo $ab | 空 |
echo ${a}b | 1b |
【3】变量的数组
a=(1 2 3 4 5)
echo $a | 默认第一个 |
---|---|
echo ${a[0]} | 下标为0的表示第一个 |
echo ${a[3]} | 下标为3的表示第四个 |
echo ${a[*]} | 下标为 * 的表示所有 |
echo ${a[@]} | 也表示数组的所有内容 |
echo ${a[-1]} | 倒数第一个 |
4.Linux中命令的别名设定
alias xie=‘vim’ | 临时设定 |
---|---|
vim ~/.bashrc | 只针对当前用户生效 |
vim /etc/bashrc | 针对系统所有用户生效 |
unalias xie | 删除当前环境中的alias |
注意:当在当前用户设置,或是在系统中所有用户生效时,必须使用source使之生效
- 临时设定:
该设定为临时设定,退出当前shell后在进入则失效。
- 只针对当前用户生效
- 让所有用户均可:
- 删除当前环境中的alias
在其他用户中也需要删除:
5.用户环境变量的更改
【1】环境变量:
用户在操作系统时使用到的命令搜索路径
【2】设定方式:
~/.bash_profile | 用户级(家目录下) |
---|---|
/etc/profile | 系统级 |
- 用户级:
- 系统级
6.利用命令的执行结果设定变量
【1】直接利用命令执行结果
优先执行表示 | 使用范围 |
---|---|
$() | 在shell中常用的拓展的接口 |
`` | 通用接口 |
【2】脚本中的传参
[1] 脚本中的传参
$0 | 脚本本身的名字 |
---|---|
$1 | 脚本后所输入的第一串字符 |
$2 | 传递给该shell脚本的第二个参数 |
$* | 脚本后所输入的所有字符"westos linux lyq" |
$@ | 脚本后所输入的所有字符’westos’ ‘linux’ ‘lyq’ |
$_ | 表示上一个命令的最后一个参数 |
$# | #脚本后所输入的字符串个数 |
$$ | 脚本运行的当前进程ID号 |
$! | 表示最后执行的后台命令的PID |
$? | 显示最后命令的退出状态,0表示没有错误,其他表示由错误 |
"*"与"@"的不同:
*:表示"linux westos redhat"
@:表示"linux" "westos" "redhat"
[2] 交互模式传参:
read WESTOS | 对westos赋值 |
---|---|
read -p “please input word:” | 输出提示语 |
read -p “Please input word:” -s | 隐藏输入内容 |
7.脚本函数
【1】定义
程序的别名
【2】脚本函数的作用
- 可以使我们当中的重复的部分进行抽取,抽取后浓缩为一个字符串。这样可以使我们的脚本更加易读,还可以使我们的脚本容量变小。
- 如果我们需要反复的执行动作的一个组合,除了使用while语句以外,还可以使用这种函数的方式执行起来
【3】设定方式
WORD()
{
action1
action2
}
WORD 在脚本中就代表action1 action2这两个动作