写一个登陆的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
复制代码
相关文章
相关标签/搜索