shell腳本入門案例
1. 如何編寫一個shell腳本
問題:
1、請求在線api, 獲取json格式的返回結果
2、解析json裡面的一個值
3、將該值存儲到文件
開發准備:
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, 折騰好久~)
將其到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是即將讀取的文件名
2. Linux裡面基本的shell腳本編寫有哪些
shell腳本就是一些命令的集合。
舉個例子,我想實現這樣的操作:
1)進入到/tmp/目錄;
2)列出當前目錄中所有的文件名;
3)把所有當前的文件拷貝到/root/目錄下;
4)刪除當前目錄下所有的文件。
簡單的4步在shell窗口中需要你敲4次命令,按4次回車。這樣是不是很麻煩?當然這4步操作非常簡單,如果是更加復雜的命令設置需要幾十次操作呢?那樣的話一次一次敲鍵盤會很麻煩。所以不妨把所有的操作都記錄到一個文檔中,然後去調用文檔中的命令,這樣一步操作就可以完成。其實這個文檔呢就是shell腳本了,只是這個shell腳本有它特殊的格式。《linux 就該這么學》
Shell腳本通常都是以.sh 為後綴名的,這個並不是說不帶.sh這個腳本就不能執行,只是大家的一個習慣而已。所以,以後你發現了.sh為後綴的文件那麼它一定會是一個shell腳本了。test.sh中第一行一定是 「#! /bin/bash」 它代表的意思是,該文件使用的是bash語法。如果不設置該行,那麼你的shell腳本就不能被執行。』#』表示注釋,在前面講過的。後面跟一些該腳本的相關注釋內容以及作者和創建日期或者版本等等。當然這些注釋並非必須的,如果你懶的很,可以省略掉,但是筆者不建議省略。因為隨著你工作時間的增加,你寫的shell腳本也會越來越多,如果有一天你回頭查看你寫的某個腳本時,很有可能忘記該腳本是用來干什麼的以及什麼時候寫的。所以寫上注釋是有必要的。另外系統管理員並非你一個,如果是其他管理員查看你的腳本,他看不懂豈不是很郁悶。該腳本再往下面則為要運行的命令了。
3. 如何編寫一個簡單的shell腳本
1、首先打開編程界面,查看現在dog目錄下的文件的許可權信息。
4. 什麼是shell編程啊,求簡單實例
剛剛學習了新書<<實用Linux Shell編程>>,書寫的容易懂,第一章就回答了什麼是shell編程的問題。下面簡單回答,僅供參考,謝謝!
1)linux 命令,你可以一條一條執行,例如,顯示日期時間命令是date,顯示當前目錄的命令是pwd,列印一句話的命令可以是echo "good morning"
2)一個腳本是包含多條命令的文本文件,命令將按照順序依次運行。例如z.sh包含4行,如下:
$ cat z.sh
#!/bin/bash
date
pwd
echo "good morning"
第一行為腳本解釋程序的位置/bin/bash, 其他行, 是命令的「堆放」
3)增加腳本執行許可權:
$ chmod +x z.sh
4)運行腳本:
$ z.sh (或者./z.sh)
Mon Jan 12 15:20:32 CST 2015
/home/user
good morning
輸出有3行,分別是命令date的結果,命令pwd的結果,命令echo "good morning"的運行結果。
5)一般地,腳本不單單是幾個簡單命令的「堆放」,有判斷、分支選擇命令,循環命令,參數輸入,函數定義等等。
但是最簡單的shell腳本可以就一條命令,或者就幾個簡單命令的「堆放」。
僅供參考,謝謝!
5. 如何在shell中執行簡單的javascript腳本
javascript腳本的運行需要一個JS的執行環境(比如瀏覽器就是一個執行環境),不同的執行環境下有個別的差異,差異主要是和環境以及平台相關的.
如果是在windows的cmd環境下,可以使用系統自帶的wscript.exe來運行簡單的腳本. 例如:
R:>catc.js
varsum=0;
for(vari=0;i<10;i++){
sum+=i;
}
WScript.Echo(sum);
R:>wscriptc.js
在linux或者windows下均可以通過node.js提供的運行環境來執行js腳本,例如:
R:>catd.js
varsum=0;
for(vari=0;i<10;i++){
sum+=i;
}
console.log(sum);
R:>noded.js
45
node提供了完成的平台開發環境,可以嘗試下. 需自行安裝