shell脚本的本质
—— shell脚本语言是解释型语言
—— shell脚本的本质
shell命令的有序集合
shell编程的基本过程
基本过程分为三步:
1、建立shell文件(以.sh结尾)
例:
vi shell1.sh
date
2、赋予shell文件执行权限
用chmod命令修改权限
chmod 740 shell1.sh
3、执行shell文件
直接在命令行上调用shell程序
./shell1.sh
shell变量
——shell允许用户建立变量存储数据,但不支持数据类型(整型、字符、
浮点型),将任何赋给变量的值都解释为一串字符
用户自定义变量
—— 在shell编程中通常使用全大写变量,方便识别
COUNT=1
—— 变量的调用:在变量前加$
echo $COUNT
—— Linux Shell/bash从右向左赋值
Y=y
X=$Y
echo $X
y
—— 使用unset命令删除变量的赋值
Z=hello
echo $Z
hello
unset Z
echo $Z
没有值
位置变量
—— $0 与键入的命令行一样,包含脚本文件名
—— $# 包含命令行参数的个数
—— $@ 包含所有命令行参数
—— $? 包含前一个命令的退出状态
—— $* 包含所有命令行参数
—— $$ 包含正在执行进程的ID号
环境变量
可通过export或env来查看
常见环境变量
HOME:/ect/passwd文件中列出的用户主目录
IFS:Internal File Separator,默认为空格,tab及换行符
PATH:shell搜索路径
PS1,PS2:默认提示符($)及换行提示符(>)
TERM:终端类型,常用的有vt100,ansi,vt200,xterm等 shell功能性语句
shell程序由零或多条shell语句构成。shell语句包括三类:说明性语句、
功能性语句和结构性语句。
—— 说明性语句:
以#号开始到结束,不被解释执行
#!/bin/bash这句话告诉OS用那种类型的shell来解释执行该程序
—— 功能性语句:
任意的shell命令、用户程序或其他shell程序
—— 结构性语句:
条件测试语句、多路分支语句、循环语句、循环控制语句等。
read语句
—— read var
echo $var
输入什么输出什么
expr命令(运算符两边要有空格)
—— 算术运算命令包括+、-、\*、/、%
expr 12 + 5 \* 3
27
test语句(0为真)
—— test语句可测试三种对象:
字符串 整数 文件属性
—— 每种测试对象都有若干测试操作符
—— 例如:
test "$answer" = "yes"
变量answer的值是否为字符串yes
test -d tmp
测试tmp是否为一个目录名
test $num -eq 18
变量num的值是否为整数18
字符串测试
s1 = s2 测试两个字符串的内容是否完全一样
s1 != s2 测试两个字符串的内容是否有差异
-z s1 测试s1字符串的长度是否为0
-n s1 测试s1字符串的长度是否不为0
整数测试
a -eq b 测试a与b是否相等
a -ne b 测试a与b是否不相等
a -gt b 测试a是否大于b
a -ge b 测试a是否大于等于b
a -lt b 测试a是否小于b
a -le b 测试a是否小于等于b
文件类型测试
-d name 测试name是否为一个目录
-e name 测试一个文件是否存在
-f name 测试name是否为普通文件
-L name 测试name是否为符号链接
-r name 测试name文件是否存在且为可读
-w name 测试name文件是否存在且为可写
-x name 测试name文件是否存在且为可执行
-s name 测试name文件是否存在且长度不为0
f1 -nt f2 测试文件f1是否比文件f2更新
f1 -ot f2 测试文件f1是否比文件f2更旧
条件语句(0为真)
if...then...fi
语法结构
if 表达式
then 命令表
fi
——如果表达式为真,则执行命令表中的命令;否则退出if语句,执行
fi后面的语句
—— if和fi是条件语句的语句括号,必须成对使用
—— 命令表中的命令可以是一条,也可以是若干条
例:if [ -f $1 ]
then
echo "File $1 exists"
fi
if...then...else...fi
语法结构:
if 表达式
then 命令表1
else 命令表2
fi
多路分支语句
case...esac
多路分支语句case用于多重条件测试,语法结构清晰自然,其语法为:
case 字符串变量 in
模式1)
命令表1
;;
模式2|模式3)
命令表2
;;
......
模式n)
命令表n
;;
esac
循环语句for
当循环次数已知或确定时,使用for循环语句来执行一条或一组命令。
格式为:
for 变量名 in 单词表
do
命令表
done
变量依次取单词表中的各个单词,每取一次单词,就执行一次循环体中的
命令,循环次数由单词表中的单词数确定。命令表中的命令可以时一条,
也可以是由分号或换行符分开的多条。
循环语句while
语法结构:
while 命令或表达式
do
命令表
done
echo 進行 脚本交互 sh脚本中echo
转载文章标签 echo 進行 脚本交互 字符串 多路 循环语句 文章分类 运维
-
echo脚本追加
1 echo 和 @@ #关闭单行回显echo off &nbs
echo脚本追加 操作系统 python 当前目录 扩展名