1.脚本格式
- 创建一个简单的脚本并运行
创建脚本文件:
touch xxx.sh
vim xxx.sh
脚本以!#/bin/bash开头(指定解释器)
!#/bin/bash
echo "hello word"
运行方式 :
1sh xxx.sh 2bash xxx.sh(解释器帮你执行脚本) 3./xxx.sh(这个需要可执行权限)
- ll 查看当前目录所有文件权限
提升文件权限chmod 777 xxx.sh
(成功提升后文件名会加粗)
- 第二个shell脚本,多命令处理
创建脚本文件touch yigejiaoben.sh
然后打开写脚本
#!/bin/bash
cd /home/vayne/
touch yigewenjian.txt
echo "hello vayne >> yigewenjian.txt
最后运行脚本bash yigejiaoben.sh
2.Shell中的变量
2.1系统变量
- 常用系统变量
$HOME $PWD $SHELL $USER
查看家目录echo $HOME
查看当前用户echo $USER
- 显示Shell中的所有变量
set
2.2自定义变量
- 基本语法
定义变量:变量=值A=1
不能有空格;需要重新赋值时:A=2
查看变量:echo $A
撤销变量:unset A
声明静态(只读)变量:readonly 变量
readonly B=1
,注意:不能unset
,重启后撤销 - 变量定义规则
可以是字母、数字(不能开头)、下划线
环境变量建议大写
等号两侧不能有空格
在bash中,变量默认类型是字符串型,不能进行数值运算C=1+1
echo $C
的结果是1+1
变量的值如果有空格,需要使用单引号或者双引号括起来D="i love you"
- 提升变量为全局变量,可以供别的程序调用
export $B
2.3特殊变量
$n
n为0-9,9以上要用{10}
脚本内部写 :
!#/bin/bash
echo "$0 $1$2 $3(123是调用脚本时候可以填写的参数,0是脚本名称)"
$#
:获取所有参数的个数(常用语循环)
$*
:代表所有参数
$@
:也代表命令行中所有的参数,不过它会把每个参数区分对待$?
:返回上一条命令的返回状态:返回值是0,则说明上一条语句执行正确(非0则不正确)
3.运算符
- 基本语法
"$[运算式]"或者"@[运算式]"
expr 加+减- 乘\* 除/ 取余%
(运算符之间必须有空格) - 实例:
命令行里输入:
- 第一种:
expr "expr 2 + 3" \* 5
(这有由于笔记格式的问题,将’变成了"实际使用用`) - 第二种(常用):
s=$[(2+3)*4]
$s
4.条件判断
- 基本语法:
[ condition ] (注意:condition左右有空格)
条件非空返回true(就是[ ]里面有东西)
条件为空返回false(就是[ ]里面没东西) - 常用判断
- 实例
[ -w hello.sh ]
判断hello.sh是否有可读取权限
$echo $?
查看返回,0正确,1错误 - 多条件判断
&&
:前面条件成功接着执行后面
||
:前面条件执行错误接着执行后面
实例:[ ] && echo ok || no ok
5.流程控制
1.if判断 (if then elif fi)
注意:if后面要有空格 [ ]里面两端有空格
2.case语句
这里平常用的break换成了;;结尾是esac
3.for循环
4. while循环
看不下去了…接着学python去了…