一步步教你如何编写Shell脚本

 更新时间:2017年04月04日 17:03:01   作者:kkooff144  
这篇文章主要介绍了关于如何编写Shell脚本的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友下面跟着小编来一起学习学习吧。

问题:

  • 请求在线api, 获取json格式的返回结果
  • 解析json里面的一个值
  • 将该值存储到文件

开发准备

1、shell

快速入门:

#!/bin/sh
cd ~
mkdir shell_tut
cd shell_tut
for ((i=0; i<10; i++)); do
 touch test_$i.txt
done

创建一个文件夹, 并在里面新建10个文件

2、curl

使用curl请求网络, 并获取返回值

curl基本用法:

$ curl www.sina.com

直接返回网页内容

$ curl -o [文件名] www.sina.com

将网页内容存储到文件中, 相当于wget命令

赋值操作:

response=$(curl www.sina.com)
echo $response

注意: =前后没有空格

jq

jq是命令行解析json的很好的工具

安装

直接到官网下载Linux64版本(我是用本地下载好后传上服务器的, 之前直接在服务器用wget下载一直报错Segmentation fault, 折腾好久~)

将其copy到bin目录

cp jq-linux64 /usr/bin/jq

使用

然后就可以愉快的使用jq命令了:

可直接查看官网Tutorial

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5'

返回的是一个json数组列表

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.'

使用.直接指向json的根节点

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[0]'

[0]为取数组的第0位的对象

jq '.[0] | {message: .commit.message, name: .commit.committer.name}'

可用过连续的.操作获取对应json对象中的属性值, 上面的命令将会生成一个{message: "....", name: "...."}的json对象.

shell文件读写

1、写

方式一:

将ll的内容写入fileName这个文件中

>是覆盖, >>是在后面追加

ll >fileName

但是在书写.sh脚本的时候, 需要增加echo

echo ll>fileName

2、读

while read LINE
do
echo $LINE
done<fileName

fileName是即将读取的文件名

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 关于Windows 不能在 本地计算器 启动 Apache2(phpstudy)

    关于Windows 不能在 本地计算器 启动 Apache2(phpstudy)

    今天在自己的本子上准备放多个虚拟站点。用的是#phpstudy#。在软件自身的站点设置中,根据提示添加的多站点无效不知道是否和我的系统是Win7有关
    2012-09-09
  • Kafka 常用命令行详细介绍及整理

    Kafka 常用命令行详细介绍及整理

    这篇文章主要介绍了 Kafka 常用命令行详细介绍及整理的相关资料,需要的朋友可以参考下
    2016-12-12
  • Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示

    Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。这篇文章主要介绍了Linux系统下 centos7下搭建ElasticSearch中间件及常用接口演示 ,需要的朋友可以参考下
    2019-07-07
  • linux free命令详解

    linux free命令详解

    本篇文章主要介绍了linux free命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • 浅谈Linux的库文件

    浅谈Linux的库文件

    这篇文章主要介绍了Linux的库文件的相关内容,小编觉得很不错,在这里分享给大家。希望给大家一个参考。
    2017-10-10
  • 使用PXE自动安装CentOS7.6的教程详解

    使用PXE自动安装CentOS7.6的教程详解

    最近小编遇到这样的需求:基地新到300台服务器,需要自实施安装CentOS7.6版本操作系统,选择使用PXE进行批量安装。这个需求该如何处理呢,下面脚本之家小编给大家带来了使用PXE自动安装CentOS7.6的教程,感兴趣的朋友一起看看吧
    2019-10-10
  • 详解linux centos yum安装LAMP环境

    详解linux centos yum安装LAMP环境

    本篇文章主要介绍了linux centos yum安装LAMP环境 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
    2016-12-12
  • varnish 配置文件分享(sens杨 注释)

    varnish 配置文件分享(sens杨 注释)

    varnish 为目前新兴起来的软件,由于中文文档比较少,配置文件比较复杂,所以在运用起来也是特别的费劲。一个偶然的机会在一个群里,有位varnish高手( sens杨 )发表了一篇他对varnish配置文件理解的文档。对于学者来说很有价值。所以转载了过来
    2016-02-02
  • CentOS7环境搭建python3以及与python2实现共存的方法

    CentOS7环境搭建python3以及与python2实现共存的方法

    这篇文章主要介绍了CentOS7环境搭建python3以及与python2实现共存的方法,结合实例形式简单分析了CentOS7环境下安装Python3的步骤、命令及测试代码示例,非常简单易懂,需要的朋友可以参考下
    2018-06-06
  • 服务器安全狗Linux版软件安装使用说明

    服务器安全狗Linux版软件安装使用说明

    今天看官方新推出了服务器安全狗Linux版,用windows版的时候感觉这个软件不错,没想到推出了linux版,大家有什么问题可以回复啊
    2011-10-10

最新评论