Shell脚本
#!/bin/bash
shell脚本以#!/bin/bash
给脚本可执行权限
运行test.sh脚本test.sh和./test.sh
运行脚本test.sh Linux系统会到PATH中寻找test.sh,会报错说找不到命令。
运行脚本./test.sh Linux系统会在当前目录找test.sh。
执行shell脚本
./script启动一个子shell来运行这个脚本,当执行完脚本后,又回到父shell中,所有在子shell中执行的操作都不会影响到父shell(当前运行script的shell)。
. script类似于source script。
source script 在当前shell环境中从文件名读取和执行命令。
shell变量
定义变量num=5
定义变量string=”my test shell”
for file in `ls /etc`
引用变量$file或${file}
打印变量echo $file或echo ${file}
只读变量readonly filename
删除变量unset filename,unset命令不能删除只读变量。
变量类型:局部变量,环境变量,shell变量。
shell字符串
单引号和双引号
拼接字符串
获取字符串长度echo ${#string}
提取子字符串
查找子字符串
shell数组
shell注释
shell传递参数
$0表示执行的文件名
$1依次为传入的参数
shell基本运算符
算数运算符 + - * / % = == !=
关系运算符-eq –ne –gt –lt –ge –le
布尔运算符 ! –o –a
逻辑运算符 && ||
字符串运算符 =等于 !=不相等 -z长度为零 –n长度不为零 $
文件测试运算符
shell echo命令用于字符串的输出
-e 开启转义
c 不换行
echo “it is a test” > file显示结果定向到文件
shell read命令从标准输入中读取一行
shell printf命令
转义a
b
c
f
n
r
t
v
\
ddd
ddd
shell test命令
-eq等于
–ne不等于
–gt大于
–ge大于等于
–lt小于
–le小于等于
shell 流程控制
if else fi
if then else fi
if then elif then else fi
for in do done
while
break continue
shell函数
shell输入输出重定向
输入重定向 <
输出重定向 >
shell文件包含
. script 注意:.和script中间有空格
source script