怎麼樣編寫shell腳本
① 如何編寫一個簡單的shell腳本
1、首先打開編程界面,查看現在dog目錄下的文件的許可權信息。
② 如何編寫安卓程序執行shell腳本
在Android系統中執行shell腳本,確保用戶擁有修改shell的許可權是首要步驟。為了實現這一目標,我們通常需要使用process對象來運行命令,如下所示:
public void execShell(String cmd) {
try {
//設置許可權
Process p = Runtime.getRuntime().exec("su");
//開始執行shell腳本
OutputStream os = p.getOutputStream();
//將命令發送到shell腳本
os.write((cmd + "\n").getBytes());
os.flush();
//關閉輸出流
os.close();
//等待shell腳本執行完成
int status = p.waitFor();
//處理結果
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
Log.d("Shell", line);
}
in.close();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
在上述代碼中,首先通過Runtime.getRuntime().exec("su")命令獲取一個名為p的Process對象,這一步驟確保了我們有執行shell腳本的許可權。接著,通過p.getOutputStream()獲取輸出流,並使用os.write((cmd + "\n").getBytes())將命令發送到shell腳本。命令發送完畢後,通過os.flush()進行刷新,隨後關閉輸出流。最後,通過p.waitFor()等待shell腳本執行完成,並通過p.getInputStream()獲取輸入流,讀取shell腳本的輸出。
值得注意的是,為了確保腳本的輸出能夠被正確捕獲,我們需要將Log.d("Shell", line)插入循環中,這樣我們就能在日誌中看到shell腳本執行的每一行輸出。同時,處理異常也是必不可少的,以免在執行過程中出現問題。
在實際開發中,編寫shell腳本時需要遵循Android系統的規定,避免執行可能帶來安全風險的操作,確保應用的穩定性和安全性。
③ 如何編寫簡單的Shell腳本文件之linux的基本操作
編寫shell腳本 首先你要有Linux命令的基礎,怎麼進入文件,怎麼執行文件,有什麼命令等等。
我們的shell 類型有很多,常見的shell環境有sh,bash,csh,zsh等等。在Linux的腳本中可以最常見的就是 sh或者shell。在shell腳本中最開始 要指定shell環境。於是乎我們有了shell的沙邦:
/bin/sh 或者/bin/bash
shell腳本的格式:shell腳本一般是以*.sh 為名字,在許可權上面是有可執行許可權x的也就是chmod u+x *.sh
命令的執行:3種:
sh 腳本路徑/腳本名
cd 腳本路徑 && ./腳本名
soure 腳本路徑/腳本
寫一個最簡單的腳本吧:
[root@linuxprobe ~]#vim 1.sh
/bin/sh
echo "this is my frist scripts,more and more linux ,you can read 《Linux就該這樣學》"
[root@linuxprobe ~]#chmod u+x 1.sh
[root@linuxprobe ~]#./1.sh
this is my frist scripts,more and more linux ,you can read 《Linux就該這樣學》
學習Linux需要多學多練
④ 如何編寫一個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是即將讀取的文件名
