1. 变量的定义
- 定义本身
变量就是内存一片区域的地址 - 变量存在的意义
命令无法操作一直变化的目标 用一串固定的字符来表示不固定的目标可以解决此问题
2. shell脚本中变量的定义方法
- 环境级别
export a=1 在环境关闭后变量失效 - 用户级别
vim ~/.bash_profile - 系统级别
vim /etc/profile - 变量名称
"字符" "_" "数字"
不能用数字开头
建议: 变量名称短 全大写字符 HUAYU ;变量名称长 用_区分子类 Huayu_Linux
3. 变量的转译
转译
- \ #转译单个字符
- "" #弱引用,批量转译个数字符 不能转译"\" "`" "$" "!"
- '' #强引用
声明
变量的数组
4. Linux中命令的别名设定
- alias xie='vim' ##临时设定
- vim ~/.bashrc ##只针对与用户生效
- vim /etc/bashrc ##针对系统所有用户生效
- unalias xie ##删除当前环境中的alias
练习脚本:
create_user.sh userfile passfile
userfile用的用户会被全部建立 passfile中的密码会被全部设定
5. 用户环境变量的更改
环境变量: 用户在操作系统时使用到的命令搜索路径
设定方式:
1. 用户级
vim ~/.bash_profile
export PATH=$PATH:/xxx/xxx
2. 所有用户
vim /etc/bash_profile
export PATH=$PATH:/xxx/xxx
6. 利用命令的执行结果设定变量
1. 直接利用命令执行结果
$ () | `` ##优先执行
TEST=`hostname` TEST=$(hostname)
2. 脚本中的传参
2.1 非交互模式:
sh /mnt/test.sh westos linux redhat
- $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 ##脚本后所输入的字符串个数
2.2 交互模式传参:
- read WESTOS ##对westos赋值
- read -p "please input word:" ##输出提示语 -s ##隐藏输入内容
7. 脚本函数
定义: 程序的别名
设定方式:
FUNCNAME() {
action1
action2
}
FUNCNAME在脚本中就代表action1 action2这两个动作