Shell Scripts介绍
概念
Shell脚本是包含一系列命令的文本文件
Shell读取此文件并执行命令
应用场景
重复性操作
批量处理事物
自动化运维
定时任务执行
预定义变量
| 选项 | 说明 |
|---|---|
| $# | 命令行参数或位置参数的数量 |
| $? | 最近一次执行的命令或shell脚本的初始状态 |
| $* | 表示所有的位置参数,其值是所有位置参数的值 |
| $* | 变量是shell脚本里面的进程ID。Shell脚本经常使用$$变量组织临时文件名,确保文件名的唯一性 |
位置变量
$n:$0代表命令本身,$1-9代表顺序参数编号,大于10的话使用括号,如9代表顺序参数编号,大于10的话使用括号,如9代表顺序参数编号,大于10的话使用括号,如{10}
数值运算符
| 选项 | 说明 |
|---|---|
| -eq | 等于 |
| -ne | 不等于 |
| –gt- | 大于– |
| -lt | 小于 |
| -le | 小于或等于 |
| –ge- | 大于或等于 |
逻辑运算符
| 选项 | 说明 |
|---|---|
| -a或&& | 逻辑与 |
| -o或|| | 逻辑或 |
| -!- | -逻辑否- |
字符串运算符
| 选项 | 说明 |
|---|---|
| = | 等于 |
| != | 不等于 |
| –z- | -判断是否为空- |
文件运算符
| 选项 | 说明 |
|---|---|
| -d | 判断是否为目录 |
| -e | 判断文件或目录是否为存在 |
| –f- | -判断是否为文件- |
| -r | 判断文件或目录针对当前用户是否可读 |
| -w | 判断文件或目录针对当前用户是否可写 |
| –x | -判断文件或目录针对当前用户是否可以执行- |
Shell流程控制语句
if语句结构
if 条件测试语句
then
action
[elif 条件
then
action
else
action
]
fi
//if经常与test命令结合使用(本例使用test相当于在条件外加一层中括号)
num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
then
echo '两个数字相等!'
else
echo '两个数字不相等!'fi
for循环
Shell的循环结构跳出循环的关键字:break和continue(和Java用法类似)
for var in item1 item2 ... itemN //当变量值在列表里,for循环即执行一次所有命令
do
command1
command2
...
commandN
done
for((i=0;i<=5;i++)){ //类似java的for循环
command1
command2
...
commandN
}
while循环
while condition
do
command
done
until循环
until condition
do
command
done
case语句
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
TMOUT:在用户输入空闲一段时间后自动断开
#!/bin/bash
TMOUT=3
echo "What is your name?"
echo "You only have $TMOUT
seconds to answer!"
read name
if [ $? -eq 0 ]; then
echo "Your name is $name"
else
echo "Timed out!"
exit 1
fi
ssh中用空格分割变量
补充:
bash shell中无法存储布尔值只能用于条件判断
截取字符串命令:echo $str | awk -F ‘//’ {print $1},以//为分割符截取字符串str,取截取的第一部分
本文深入讲解Shell脚本的基础概念,包括预定义变量、选项、字符串运算符等,并详细阐述了if语句、for循环、while循环等流程控制语句的应用场景及使用方法。
7908

被折叠的 条评论
为什么被折叠?



