shell 指令碼學習筆記
阿新 • • 發佈:2018-12-17
前言
基於bash 並參考 菜鳥教程的shell 教程 http://www.runoob.com/linux/linux-shell.html
### shell 的執行方法
chmod +x ./test.sh
bash test.sh
輸入輸出
除錯輸出
#!/bin/bash
set -x
外部引數
#!/bin/bash # author:菜鳥教程 # url:www.runoob.com echo "Shell 傳遞引數例項!"; ## echo 為輸出方法 echo "執行的檔名:$0"; echo "第一個引數為:$1"; echo "第二個引數為:$2"; echo "第三個引數為:$3"; $ chmod +x test.sh $ ./test.sh 1 2 3 Shell 傳遞引數例項! 執行的檔名:./test.sh 第一個引數為:1 第二個引數為:2 第三個引數為:3
printf 格式化輸出
#!/bin/bash
# author:菜鳥教程
# url:www.runoob.com
printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n" 楊過 男 48.6543
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876
詳細見 http://www.runoob.com/linux/linux-shell-printf.html
重定向
標準輸入及標準輸出,預設均為當前使用者操作的終端。 command > file command < file command >> file 需要注意的是檔案描述符 0 通常是標準輸入(STDIN),1 是標準輸出(STDOUT),2 是標準錯誤輸出(STDERR)。 command 2 > file ##重定向錯誤到file command > file 2>&1 ## 標準輸出及錯誤都重定向到file command > /dev/null 2>&1 ## 不顯示任何輸出
外部檔案
. filename # 注意點號(.)和檔名中間有一空格
或
source filename
變數及賦值
參見 http://www.runoob.com/linux/linux-shell-variable.html
運算
算數、關係(大小)、布林(與或非)、邏輯(與或)、字串、檔案測試
http://www.runoob.com/linux/linux-shell-basic-operators.html
正則
https://www.cnblogs.com/hanxiaoyu/p/5759477.html
陣列
參見:http://www.runoob.com/linux/linux-shell-array.html
流程控制
參見:http://www.runoob.com/linux/linux-shell-process-control.html
函式
參見:http://www.runoob.com/linux/linux-shell-func.html
常用系統命令
http://www.runoob.com/linux/linux-command-manual.html
sed、tail、grep、wc、awk、more、cat
應用進階
使用者互動 read
http://www.runoob.com/linux/linux-comm-read.html
圖形互動 dialog
http://www.ttlsa.com/linux-command/linux-dialog-shell/
自動互動 expect
http://www.cnblogs.com/lixigang/articles/4849527.html