效果

输入命令,选择一个序号登录服务器

$ aoel

(1) first 192.168.1.1

(2) 第二台机器 192.168.1.2

配置文件

1. 填写服务器信息 computerInfo.ini

#ip port user password description

192.168.1.1 22 root 123456 first machine

192.168.1.2 22 root 123456 第二台机器

2. 使用 expect 自动回复 yes 输入密码 core.ex

#!/usr/bin/expect

set ip [lindex $argv 0]

set port [lindex $argv 1]

set username [lindex $argv 2]

set password [lindex $argv 3]

set timeout -1

spawn ssh -p $port $username@$ip

expect {

“password” {send “$password\r”;}

“yes/no” {send “yes\r”;exp_continue}

}

interact

3. 登录脚本 login.sh

#!/bin/bash

file=”computerInfo.ini”

#显示机器信息 过滤第一行和空行

awk ‘{if (NR > 1 && $1 != “”){printf “%-2s %-45s %-15s \n”,”(“NR-1″)”,$5,$1}}’ $file

echo “please choose which machine to login:”

read number

number=$[number+1]

#将信息存入变量

read ip port user password <<< $(echo `awk ‘NR==”‘$number'”{print $1,$2,$3,$4}’ $file`)

./core.ex $ip $port $user $password

4. 使用 alias 定义自己的命令

./bashrc # 仅当前用户有效

/etc/bashrc # 所有的用户都有效

source .bashrc # 让我们的环境生效

alias aoel=’/login_server/login.sh’

参考文章

Linux Expect 简介和使用实例

Linux自定义命令指令 | alias

Linux alias命令的使用