一、使用背景
鉴于业务需求,需要编写一个脚本文件,用于不间断的获取一些信息。这里用shell脚本是最方面的,循环执行我们的请求方法即可。
二、shell脚本编写过程
(1)创建 test.sh文件
//使用touch命令创建文件
touch test.sh
(2)编写test.sh 文件
vim test.sh
//此时开始编写
i //进入编写模式
//下面是.sh文件内容
#!/bin/bash
a="hello world"
echo $a
(3)保存之后执行test.sh
//在当前目录执行.sh文件
./test.sh
(4)报错:./test.sh Permission denied
这里报错的原因是因为我们没有执行.sh文件的权限,此时操作:
//chmod +x 文件名
chmod +x test.sh
//赋值之后重新执行
./test.sh
//这里会发现,输出了hello world
(5)大致语法讲解:
1 开头
程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
当编写脚本完成时,如果要执行该脚本,还必须使其可执行。
要使编写脚本可执行:
编译 chmod +x filename 这样才能用./filename 来运行
2 注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。
如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
3 变量
在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。
我这里只是最初步的编写shell脚本,具体的参考:
http://blog.sina.com.cn/s/blog_54f82cc201010hfz.html
二、按照我的业务需求,不间断请求某文件,执行该文件的内容
1、代码部分
#!/bin/sh
while true
do
curl 执行某个接口的具体地址,例如:http://test.test.com
done
解释:
(1)固定开头部分
(2)while true 代表是恒成立的条件,属于条件判断句,这个恒成立,所以能让我们一直执行我们想执行的文件。这算是最简单的死循环
(3)do 代表执行
(4)代表执行结束
2、执行文件
(1)我们这里换一种执行方式
//sh + 你要执行的文件
sh filename
解释:sh 执行.sh文件,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为sh是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。
(2)其他执行方式
绝对路径执行法
//执行从绝对路径处执行
/home/pzsh/test.sh
OK,写一个死循环的shell脚本,然后执行。这样就能达到不间断执行某文件的目的。这里我的需求也解决了,顺便还学习了一下shell脚本。以后需要shell脚本的地方会更多,慢慢学习吧。
end