shell脚本基础笔记
1.1脚本的介绍
(1)什么是shell脚本?
一系列的shell命令的集合,可加入一系列的逻辑操作,并将这些命令放入一个文件中
1.文件
2.shell命令n个
3.可加入逻辑
4.需要在linux的终端执行
例如:
#test.sh
ls
pwd
if [ xxx ]
cd..
fi
(2)什么是shell命令?
$ls
$cd
$pwd
(3)shell脚本的基本格式
a.命名格式
一般命名规则:xxx.sh(建议以.sh为后缀命名)
b.书写格式
#test.sh #是shell脚本中的注释
#如果第一行忘了写,使用默认的命令解析器 /bin/sh
#!/bin/bash #指定解析shell脚本的时候使用的命令解析器(/bin/sh也可以)
#一系列shell命令
ls
cp
rm
(4)shell脚ch本的执行
#shell脚本编写完成后,必须添加执行权限
chmod u+x xxx.sh
#执行shell脚本
./xxx.sh
sh test.sh
1.2 shell脚本中的变量
(1)变量的定义
a.普通变量(也叫本地变量)
#定义变量定义完成,必须要赋值, =前后不能有空格
temp=666
#普通变量只能在当前的进程中使用
b.环境变量 ->一般大写
# 可以理解为全局变量,在当前的操作系统可以全局访问
# 分类
- 系统自带的
- PWD
- SHELL
- PATH
- HOME
- 用户自定义的
- 将普通变量提升为系统级别环境变量
GOPATH=/home/zoro/go/src ->普通环境变量
set GOPATH=/home/zoro/go/src ->系统环境变量
export GOPATH=/home/zoro/go/src
c.位置变量
执行脚本的时候,可以给脚本传递参数,需要使用位置变量
# 已经存在脚本test.sh
#!/bin/bash
echo "hello,$0"
echo "传递第一个参数:$1"
echo "传递第二个参数:$2"
echo "传递第三个参数:$3"
echo "传递第四个参数:$4"
echo "传递第五个参数:$5"
$ ./test.sh a b c d e f g
hello, .test.sh
传递第一个参数: a
传递第二个参数: b
传递第三个参数: c
传递第四个参数: d
传递第五个参数: e
aa. $0:执行脚本文件的名字
bb. $1:第一个参数
cc. $2:第二个参数
d.特殊变量
aa. $#:获取传递的参数的个数
bb. $@:给脚本传递所有的参数。
cc. $?:脚本执行完成之后的状态,失败>0 or 成功=0
dd. $$:脚本进程执行之后的结果值
e.普通变量的取值
# 变量定义
value=123 #默认以字符串处理
value1 = "123 456"
echo $value
# 如何取变量的值:
- $变量名
- ${变量名}
f.取命令执行之后的结果值
# 取值的两种方式:
var=$(shell命令)
var='shell命令'
g.引号的使用
# 双引号
echo "当前文件:$var"
- 打印的时候会var中的值取出并且输出
# 单引号
echo '当前文件:$var'
- 将字符串原样输出
1.3条件判断和循环
a.shell脚本中的if条件判断
# if 语句
# 注意事项
- if 和 []之间有一个空格
- [ 条件 ] : 条件的前后都有空格
- else if => elif
- 结尾:fi
if [ 条件判断 ];then
逻辑处理
xx
xxx
xxxx
fi
#======================
if [ 条件判断 ]
then
逻辑处理
xx
xxx
xxxx
fi
b.shell脚本for循环
# shell中的循环 for/ while
# 语法: for 变量 in 集合; do;done
1.4shell脚本中的函数
# 没有函数修饰,没有参数,没有返回值
#格式
funname(){
#得到第一个参数
arg1=$1
#得到第二个参数
arg2=$2
函数体
}
#没有参数列表,但可以传参
#函数调用
funname aa bb cc
0 -> 调用成功
非0 -> 失败
本文由我边看教学视频边整理的笔记~