項目涉及到好多關於登錄的shell命令,好比登錄服務器,連接redis等redis
編寫一個shell腳本,不用每次都查詢服務器地址了shell
由於咱們使用的是bash, 已 #!/bin/bash 開頭聲明文件語法是用的是bash語法。 當程序被執行的時候,會加載bash相關環境配置文件bash
若是不寫的話,系統可能沒法判斷程序須要什麼shell來執行服務器
除了在 #!/bin/bash 行出現的 # ,其他的在開頭的 都表示的此行代碼被註釋ssh
能夠編寫命令行直接輸入變量值ui
命令與變量的對應是spa
某一條命令 xxx xxx
$0 $1 $2
複製代碼
好比 寫一個輸入變量的shell腳本命令行
echo i am variable '$1', $1
複製代碼
執行一下3d
sh variable.sh mxtx
// i am variable $1, mxtx
複製代碼
還有一些特殊的變量含義調試
$# 表示後面有幾個參數
read 命令能夠獲取到鍵盤輸入信息
read [-pt] variable
複製代碼
其實感受和建立了一個本地變量的概念相似
好比執行
read name // 命令行進入等待狀態
i am tom // 回車結束輸入
複製代碼
而後輸出一下這個 name 的變量值
echo $name // i am tom
複製代碼
使用 -p 編寫一個帶有提示的命令
read -p "please enter your name:"
複製代碼
if [ 條件 ]; then
條件成立時候要執行的操做
fi
複製代碼
這個格式必須這麼固定 最後一行就是 fi 表示結束if 語句了
寫一個例子,當輸入的第一個變量值是 1 就輸出 boy 就輸出 不然 爲 girl
if [ $1 == 1 ]; then
echo boy
else
echo gril
fi
複製代碼
若是是多個條件
if [ 條件1 ]; then
條件1成立時候要執行的操做
elif [ 條件2 ]; then
條件2成立時候要執行的操做
fi
複製代碼
腳本寫完以後不必定保證寫的正確,能夠先進行一個語法的檢查
sh -n youshell.sh
複製代碼
有三個參數可使用
參數 | 含義 |
---|---|
n | 不執行腳本 只檢查語法 |
v | 執行前將腳本內容輸出 |
x | 將使用的內容輸出 |
read -p "enter your choice: " choice
# 定義變量
test='work@xxxx'
master='work@xxx'
redis='xxxxxxx'
echo $choice
# 根據輸入值 進行條件判斷
if [ $choice == test ]; then
ssh $test
elif [ $choice == master ]; then
ssh $master
elif [ $choice == redis ]; then
redis-cli -h $redis
fi
複製代碼