shell脚本
2020-04-03 16:02:19来源:博客园 阅读 ()
shell脚本
shell脚本
shell脚本介绍
shell脚本就是一些命令的集合,能帮助我们更方便管理服务器
shell脚本的创建和执行
自定义脚本都放在sbin目录下
# cd /usr/local/sbin
编写第一个脚本
# vi first.sh
脚本内容
#! /bin/bash 表示该文件使用的是bash语
## This is my first shell script. #表示注释## Writen by kei 2020-03-31 date
echo "Hello world!" 执行脚本内容 # sh first.sh # ./first.sh 使用这个命令是要先给脚本x权限
查看脚本执行过程
# sh -x first.sh
命令date
date的常用用法
date +%Y 表示以四位数字格式打印年份
date +%y 表示以两位数字格式打印年份
date +%m 表示月份
date +%d 表示日期
date +%H 表示小时
date +%M 表示分钟
date +%S 表示秒
date +%w 表示星期(结果显示为0表示周日)
shell脚本中的变量
定义变量的格式为“变量名=变量的值”,在脚本中引用变量时需要加上符号$
编写一个与变量相关的脚本
# vi variable.sh
脚本内容
#! /bin/bash ## In this script we will use variables.## Writen by kei 2020-03-31 d=`date +%H:%M:%S` 反引号的作用是将引号中的字符串当成shell命令执行
echo "The script begin at $d."
echo "Now we'll sleep 2 seconds."
sleep 2
d1=`date +%H:%M:%S`
echo "The script end at $d1." d和d1在脚本中作为变量 执行脚本 # sh variable.sh
数学运算
# vi sum.sh
脚本内容
#! /bin/bash ## For get the sum of two numbers.## Writen by kei 2020-03-31 a=1
b=2
sum=$[$a+$b] 数学计算要用[ ]括起来,而且前面要加符号$
echo "$a+$b=$sum"
执行脚本
# sh sum.sh
和用户交互
# vi read.sh
脚本内容
#! /bin/bash ## Using 'read' in shell script.## Kei 2020-03-31 read -p "Please input a number: " x read命令把用户输入的字符串作为变量值
read -p "Please input another number: " y
sum=$[$x+$y]
echo "The sum of the two numbers is: $sum" 执行脚本 # sh read.sh
查看执行过程
# sh -x read.sh
shell脚本预设变量
shell脚本在执行时,后面可以跟一个或者多个参数
# vi option.sh
脚本内容
#! /bin/bash sum=$[$1+$2] $1和$2为脚本的预设变量 echo "sum=$sum" 执行脚本 # sh -x option.sh 1 2修改脚本,$0代表脚本本身的名字
# vi option.sh
脚本内容
#! /bin/bash echo "$1 $2 $0" 执行脚本 # sh option.sh 1 2shell脚本中的逻辑判断
不带else
格式
if 判断语句; then
command
fi
编写脚本
# vi if1.sh
脚本内容
#! /bin/bash read -p "Please input your score: " aif ((a<60)); then
echo "You didn't pass the exam."
fi 执行脚本 # sh if1.sh
带有else
格式
if 判断语句; then
command
else
command
fi
编写脚本
# vi if2.sh
脚本内容
#! /bin/bash read -p "Please input your score: " aif ((a<60)); then
echo "You didn't pass the exam."
else
echo "Good! You passed the exam."
fi 执行脚本
# sh if2.sh
带有elif
格式
if 判断语句1; then
command
elif 判断语句2;then
command
else
command
fi
编写脚本
# vi if3.sh
脚本内容
#! /bin/bash read -p "Please input your score: " aif ((a<60)); then 判断数值大小除了可以用(())的形式外,还可以用[ ]
echo "You didn't pass the exam."
elif ((a>=60)) && ((a<85)); then &&表示并且。||表示或者
echo "Good! You passed the exam."
else
echo "Very good! Your score is very high!"
fi
执行脚本
# sh if3.sh
常用符号
-lt 小于
-gt 大于
-le 小于或等于
-ge 大于或等于
-eq 等于
-ne 不等于
和文档有关的判断
if还常用于判断文档的属性
-e 判断文件或目录是否存在
-d 判断是不是目录以及是否存在
-f 判断是不是普通文件以及是否存在
-r 判断是否有读权限
-w 判断是否有写权限
-x 判断是否可执行
格式
if [ -e filename ]; then
command
fi
case逻辑判断
格式
case 变量 in
value1) 不限制value的个数
command
;;
value2)
command
;;
*) *代表其他值
command
;;
esac
编写脚本
# vi case.sh
脚本内容
#! /bin/bash read -p "Input a number: " na=$[$n%2]
case $a in $a的值为1或0
1)
echo "The number is odd."
;;
0)
echo "The number is even."
;;
*)
echo "It's not a number!"
;;
esac
执行脚本
# sh case.sh
shell脚本中的循环
常用的循环有for循环和while循环
for循环
格式
for 变量名 in 循环的条件;do
command
done
循环的条件可以是一组字符串或者数字,也可以是一条命令的执行结果
# vi for.sh
脚本内容
#! /bin/bash for i in `seq 1 5`; doecho $i
done
执行脚本
# sh for.sh
循环的条件还可以引用系统命令的执行结果,但需要用反引号括起来
# for file in `ls`; do echo $file; done
while循环
用冒号:代替循环条件时可以做到死循环
格式
while 条件; do
command
done
编写脚本
# vi while.sh
脚本内容
#! /bin/bash a=5while [ $a -ge 1 ]; do
echo $a
a=$[$a-1]
done
执行脚本
# sh while.sh
shell脚本中的函数
shell脚本中的函数就是先把一段代码整理到一个小单元中,并给这个小单元命名,当用到这段代码时直接调用这个小单元的名字即可
格式
function 函数名()
{
command1
command2
}
编写脚本
# vi func.sh
脚本内容
#! /bin/bash a=5while [ $a -ge 1 ]; do
echo $a
a=$[$a-1]
done
[root@localhost sbin]# cat func.sh
#! /bin/bash function sum()
{
sum=$[$1+$2]
echo $sum
} sum $1 $2 执行脚本 # sh func.sh 1 2
shell脚本中的中断和继续
break
break用在循环中,表示退出该层循环 编写脚本 # vi break.sh 脚本内容 #! /bin/bash for i in `seq 1 5`do
echo $i
if [ $i == 3 ] 当i等于3时会跳出循环
then
break
fi
echo $i
done
echo aaaaaa 执行脚本 # sh break.sh
contiune
在循环中,contiue表示退出本次循环 编写脚本 # vi contiune.sh 脚本内容 #! /bin/bash for i in `seq 1 5`do
echo $i
if [ $i == 3 ] 当i等于3时,结束本次循环
then
continue
fi
echo $i
done
echo $i 执行脚本 # sh continue.sh
exit
exit表示直接退出脚本
编写脚本
# vi exit.sh
脚本内容
#! /bin/bash for i in `seq 1 5`do
echo $i
if [ $i == 3 ]
then
exit
fi
echo $i
done
echo aaaaaaa
执行脚本
# sh exit.sh
原文链接:https://www.cnblogs.com/tui463/p/12612228.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- Linux指令和shell脚本 2020-06-11
- Xshell如何配置并远程连接Linux服务器详解 2020-05-31
- Ubuntu下用脚本执行sql语句(sqlite) 2020-05-29
- 如何将目录下的脚本一次性全部执行 2020-05-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash