一步步教你如何編寫Shell腳本
問(wèn)題:
- 請(qǐng)求在線api, 獲取json格式的返回結(jié)果
- 解析json里面的一個(gè)值
- 將該值存儲(chǔ)到文件
開發(fā)準(zhǔn)備
1、shell
快速入門:
#!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch test_$i.txt done
創(chuàng)建一個(gè)文件夾, 并在里面新建10個(gè)文件
2、curl
使用curl請(qǐng)求網(wǎng)絡(luò), 并獲取返回值
curl基本用法:
$ curl www.sina.com
直接返回網(wǎng)頁(yè)內(nèi)容
$ curl -o [文件名] www.sina.com
將網(wǎng)頁(yè)內(nèi)容存儲(chǔ)到文件中, 相當(dāng)于wget命令
賦值操作:
response=$(curl www.sina.com) echo $response
注意: =前后沒(méi)有空格
jq
jq是命令行解析json的很好的工具
安裝
直接到官網(wǎng)下載Linux64版本(我是用本地下載好后傳上服務(wù)器的, 之前直接在服務(wù)器用wget下載一直報(bào)錯(cuò)Segmentation fault, 折騰好久~)
將其copy到bin目錄
cp jq-linux64 /usr/bin/jq
使用
然后就可以愉快的使用jq命令了:
可直接查看官網(wǎng)Tutorial
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5'
返回的是一個(gè)json數(shù)組列表
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.'
使用.直接指向json的根節(jié)點(diǎn)
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[0]'
[0]為取數(shù)組的第0位的對(duì)象
jq '.[0] | {message: .commit.message, name: .commit.committer.name}'
可用過(guò)連續(xù)的.操作獲取對(duì)應(yīng)json對(duì)象中的屬性值, 上面的命令將會(huì)生成一個(gè){message: "....", name: "...."}的json對(duì)象.
shell文件讀寫
1、寫
方式一:
將ll的內(nèi)容寫入fileName這個(gè)文件中
>是覆蓋, >>是在后面追加
ll >fileName
但是在書寫.sh腳本的時(shí)候, 需要增加echo
echo ll>fileName
2、讀
while read LINE do echo $LINE done<fileName
fileName是即將讀取的文件名
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Ubuntu安裝Matlab2020b詳細(xì)教程和資源
大家好,本篇文章主要講的是Ubuntu安裝Matlab2020詳細(xì)教程和資源,感興趣的同學(xué)趕快來(lái)看一看吧,希望對(duì)你有幫助2021-11-11深入理解Bash中的尖括號(hào)(適合初學(xué)者)
這篇文章主要給大家介紹了關(guān)于Bash中尖括號(hào)的相關(guān)資料,本文非常適合初學(xué)者,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Linux兩個(gè)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)同步方案
這篇文章主要介紹了Linux兩個(gè)服務(wù)器實(shí)現(xiàn)數(shù)據(jù)同步方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07linux安裝apache過(guò)程中注意的問(wèn)題
這篇文章主要為大家介紹了linux安裝apache過(guò)程中注意的問(wèn)題,幫助大家進(jìn)行順利安裝,感興趣的小伙伴們可以參考一下2016-01-01Linux宿主機(jī)下/容器下如何修改進(jìn)程打開的文件句柄數(shù)(open files)
系統(tǒng)級(jí)的max-file和進(jìn)程級(jí)的ulimit-n分別控制文件句柄的最大數(shù)量,系統(tǒng)級(jí)限制整個(gè)系統(tǒng),而ulimit-n只限制單個(gè)進(jìn)程,當(dāng)進(jìn)程打開的文件句柄數(shù)超限時(shí),會(huì)報(bào)“Too many files open”錯(cuò)誤,可以通過(guò)特定命令查看和修改這些值2024-10-10centos 5 手動(dòng)分區(qū)來(lái)安裝系統(tǒng)的方法
近來(lái)我想體驗(yàn)一下centos系統(tǒng),于是在虛擬機(jī)中安裝了centos 5。2010-03-03解決生產(chǎn)環(huán)境遇到的curl和yum命令報(bào)錯(cuò)問(wèn)題
在銀河麒麟V10SP2arm64系統(tǒng)下,升級(jí)sshd服務(wù)同時(shí)升級(jí)了openssl至1.1.1l版本,導(dǎo)致curl和yum命令報(bào)錯(cuò),分析原因是openssl版本與libcurl.so.4文件不兼容,嘗試修復(fù)無(wú)效后,通過(guò)重新編譯安裝curl解決問(wèn)題,建議在升級(jí)openssl時(shí)謹(jǐn)慎2024-09-09