寫一個登陸的shell腳本

項目涉及到好多關於登錄的shell命令,好比登錄服務器,連接redis等redis

編寫一個shell腳本,不用每次都查詢服務器地址了shell

shell腳本格式

  • 第一行是 #!/bin/bash

由於咱們使用的是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
複製代碼

variable

還有一些特殊的變量含義調試

$# 表示後面有幾個參數

與用戶交互 read

read 命令能夠獲取到鍵盤輸入信息

read [-pt] variable
複製代碼

其實感受和建立了一個本地變量的概念相似

好比執行

read name // 命令行進入等待狀態

i am tom // 回車結束輸入
複製代碼

而後輸出一下這個 name 的變量值

echo $name // i am tom
複製代碼

read

使用 -p 編寫一個帶有提示的命令

read -p "please enter your name:"
複製代碼

variable

if 語句

if [ 條件 ]; then 
  條件成立時候要執行的操做
fi 
複製代碼

這個格式必須這麼固定 最後一行就是 fi 表示結束if 語句了

寫一個例子,當輸入的第一個變量值是 1 就輸出 boy 就輸出 不然 爲 girl

if [ $1 == 1 ]; then
  echo boy
else 
  echo gril
fi
複製代碼

variable

若是是多個條件

if [ 條件1 ]; then 
  條件1成立時候要執行的操做
elif [ 條件2 ]; then  
  條件2成立時候要執行的操做
fi 
複製代碼

shell腳本的調試

腳本寫完以後不必定保證寫的正確,能夠先進行一個語法的檢查

sh -n youshell.sh
複製代碼

shell

有三個參數可使用

參數 含義
n 不執行腳本 只檢查語法
v 執行前將腳本內容輸出
x 將使用的內容輸出

vx

編寫腳本

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
複製代碼
相關文章
相關標籤/搜索