cat /etc/shells // 多种解释器
echo $SHELL // 默认解释器
1.脚本格式
脚本以#!/bin/bash 开头(指定解释器)
2.脚本执行
bash|sh hellowWorld.sh // bash或sh来执行
./helloWorld.sh // 脚本需要执行权限
3.多命令处理
touch bash.sh // 先创建一个脚本文件
// 在脚本文件中写入如下代码
#!/bin/bash
cd /home
touch hi.txt
echo "hahaha" >> hi.txt
bash bash.sh // 执行脚本文件
一、shell中的变量
1.系统变量
echo $HOME // 当前用户家目录
echo $PWD // 当前目录
echo $SHELL // 默认解释器
echo $USER // 当前用户
2.自定义变量变量默认类型是字符串类型,无法直接进行数值运算
变量值有空格,要用双引号或单引号括起来
A=2 // 等号两边没有空格
unset A // 撤销变量
readonly B=3 // 静态变量,不能unset
D="aa aavv ddd"
export 变量名 // 将变量提升为全局环境变量,可供其他shell程序使用
3.特殊变量$n(n为数字,$0代表该脚本名称,$1-$9代表第一到第9个参数,十以上参数需要用大括号,如${10})
sh hello.sh xx mm
echo "$0 $1 $2" // 输出hello.sh xx mm
$#(获取所有输入参数的个数,常用于循环)
$*(代表命令行中所有的参数,$*把所有的参数看做一个整体)
$@(也代表命令行中所有的参数,不过$@把每个参数区别对待)
$?(最后一条执行命令的返回状态,为0 则上个命令正确执行,非0,则上个命令执行不正确)
二、shell中的运算符
"$((运算符))" 或 "[运算符]"
expr +,-,*,/,% 加减乘除,取余,expr运算符间要有空格- 案例
expr 3 + 2
expr `expr 3 + 2` \* 10
三、shell中的条件判断
[ condition ] condition 前后要有空格,条件非空即为true,[ xxx ] 返回true,[ ] 返回false
-lt 小于 -le 小于等于
-eq 等于 -gt 大于
-ge 大于等于 -ne 不等于
-r 有读权限 -w 有写权限
-x 有执行权限
-f 文件存在并是一个常规文件
-e 文件存在
-d 文件存在并是一个目录
[ -w hello.sh ]
[ -e /home/hello.sh ]
[ condition ] && echo ok || echo notok
// && 前个命令执行成功 则执行 echo ok, || 前个命令执行失败则执行echo notok
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。