echo
echo [选项] [输出内容]
选项:
-e: 支持反斜线控制的字符转换
\\ 输出\本身
\a 输出警告音
\b 退格键,也就是向左删除键
\c 取消输出行末的换行符。和“-n”选项一致
\e ESCAPE 键
\f 换页符
\n 换行符
\r 回车键
\t 制表符,也就是 Tab 键
\v 垂直制表符
\0nnn 按照八进制 ASCII 码表输出字符。其中 0 为数字零,nnn 是三位
八进制数
\xhh 按照十六进制 ASCII 码表输出字符。其中 hh 是两位十六进制数
#!/bin/bash
shell脚本开头
脚本的执行
1 首先要赋予脚本x权限,输入脚本的绝对路径或相对路径 /root/helloWorld.sh ./helloWorld.sh
2 不用赋予脚本+x权限,sh /root/helloWorld.sh sh helloWorld.sh
变量
1 查看变量
set
显示当前 shell 中所有变量
env
显示所有的环境变量
2 定义变量
变量=值
变量定义规则
(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
(2)等号两侧不能有空格
(3)变量名称一般习惯为大写
(4)双引号和单引号有区别,双引号仅将空格脱意,单引号会将所有特殊字符脱意
3 将命令的返回值赋给变量
A=ls -la
反引号,运行里面的命令,并把结果返回给变量 A
A=$(ls -la) 等价于反引号
4 设置环境变量
export 变量名=变量值 (功能描述:设置环境变量的值)
echo $变量名 (功能描述:查询环境变量的值)
source 配置文件 (功能描述:让修改后的配置信息立即生效 )
5 参数
$n (功能描述:n 为数字,$0 代表命令本身,$1-
9
代
表
第
一
到
第
九
个
参
数
,
十
以
上
的
参
数
,
十
以
上
的
参
数
需
要
用
大
括
号
包
含
,
如
9 代表第一到第九个参数,十以上 的参数,十以上的参数需要用大括号包含,如
9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如{10})
∗
(
功
能
描
述
:
这
个
变
量
代
表
命
令
行
中
所
有
的
参
数
,
* (功能描述:这个变量代表命令行中所有的参数,
∗(功能描述:这个变量代表命令行中所有的参数,*把所有的参数看成一个整体)
@
(
功
能
描
述
:
这
个
变
量
也
代
表
命
令
行
中
所
有
的
参
数
,
不
过
@ (功能描述:这个变量也代表命令行中所有的参数,不过
@(功能描述:这个变量也代表命令行中所有的参数,不过@把每个参数区分对待)
$# (功能描述:这个变量代表命令行中所有参数的个数)
6 预定义变量
$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)
$$ (功能描述:当前进程的进程号(PID))
$! (功能描述:后台运行的最后一个进程的进程号(PID))
7 运算符
(1)“
(
(
运
算
式
)
)
”
或
“
((运算式))”或“
((运算式))”或“[运算式]”
(2)expr m + n expr 运算符间要有空格
8 条件判断
[ condition ](注意 condition 前后要有空格)
1)两个整数之间比较
= 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
ge 大于等于
-ne 不等于
2)按照文件权限进行判断
-r 有读的权限
-w 有写的权限
-x 有执行的权限
3)按照文件类型进行判断
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并是一个目录
8 read 读取控制台输入
read(选项)(指定读取值的变量名)
选项:
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒)。
9 流程控制
(1)if
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
fi
注意事项:(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
(2)case
case $变量名 in
"值 1")
如果变量的值等于值 1,则执行程序 1
;;
"值 2")
如果变量的值等于值 2,则执行程序 2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
3)for
for 变量 in 值 1 值 2 值 3…
do
程序
done
(4)while
while [ 条件判断式 ]
do
程序
done
10