一. shell脚本
1 ,新建脚本文件
shell脚本是一个可执行文件
vim first.sh //新键一个新的脚本
第一行#!/bin/bash 表示脚本声明,表示此行以后的语句通过/bin/bash程序来解析执行
行首第一个字符是# ,这表示该行为注释,非执行命令
2 、赋予可执行权限
chmod +x 脚本文件
3、运行脚本文件
(1)脚本文件路径(绝对路径或者相对路径)
./first.sh
/root/first.sh
(2)l利用解释器
当文件没有执行权限是,可以用解释器进行脚本
bash 脚本文件路径 /
sh 脚本文件路径
source 脚本文件路径
. 脚本文件路径
bash 和sh执行会新开一个变量环境,source和 . ,表示继续以现在环境
(3)层数
bash和sh 会增加环境变量的层数
bash
bash
sh
echo $SHLVL //看现在所在的层数
pstree
exit //退出本层
二、自定义变量
1、定义变量
a=192.168.100 //变量名=变量值
b=niuniuzi
当前进程中有效,其他进程及当前进程的子进程无效
[root@localhost ~]$ echo $SHLVL
1
[root@localhost ~]$ b=niuniuz
[
[root@localhost ~]$
[root@localhost ~]$ echo $b
niuniuz
[root@localhost ~]$ bash
[root@localhost ~]$ echo $b
[root@localhost ~]$ //b为空
2、变量名的定义规则
基本格式:变量名=变量值
●VERSION=6.0
●等号两边没有空格,变量名称以字母或者下划线开头,名称中不 要包括特殊字符,不能以数字开头
变量名区分大小写
unset a # #取消a的赋值
set #查看所有变量
declare -i a=123 #规定变量只能为数字
readonly a=123 #规定变量不可变, 只能退出exit取消
三、变量的调用
双引号(“”)
界定字符串,赋值的内容包括空格,必须以双引号括起来,在双引号的范围内,使用$符号引用变量值
##WEIXIN="weixin 5.0"
单引号('')
变量值包括特殊符号%¥¥#@等,使用单引号括起来。在单引号的范围内无法引用其他变量的值
##PEI=‘$peihua%’
反撇号(``)
反撇号主要用于命令替换,允许将执行某个命令的输出结果赋值给变量
##DENNLIST=`grep -v "^#" /etc/vsftpd`
实现两个命令以上的嵌套命令,需要改用$()来代替反撇号
##rpm -qc $(rpm -qf $(which useradd))
bash的内置命令read 给变量赋值
四、交互式定义变量(read)
read [选项] 变量名
五、环境变量
(1)局部变量
环境变量:当前进程有效,并且能够被子进程调用,在子进程定义的在父进程不能调用
- env 查看当前用户的环境变量
- set 查询当前用户的所有变量(临时变量与环境变量)
- export 变量名=变量值 或者 变量名=变量值;export 变量名
B=123
export B //临时把一个临时变量变成环境变量,重开机失效(切换用户不生效)
env | grep B
B=123
(2)全局变量
全局变量:全局所有的用户和程序都能调用,且继承,新建的用户也默认能调用
用户登录系统读取相关文件的顺序
/etc/profile
$HOME/.bash_profile
$HOME/.bashrc
/etc/bashrc
将脚本移动到/bind/bash目录,以及a=123123写入/etc/profile