shell 交互脚本菜单

一、概述

shell脚本的交互最常用的方式是使用菜单,通常是echo打印菜单出来。

由于服务别名都写在/etc/hosts中

192.168.155.172 test-1
192.168.155.173 test-2
192.168.155.174 test-3
192.168.155.140 test-4

 

开发人员连接后端服务器,需要从hosts中复制比较麻烦。

因此需要一个交互式脚本,简化操作。

 

二、完整代码

start.sh

复制代码
#!/bin/bash
#simple script menu

#连接主机
function connect_host() {
    ssh -p 22 $1
}


function menu {
    clear
    echo
    echo -e "test menu"
    echo -e "1. test-1"
    echo -e "2. test-2"
    echo -e "3. test-3"
    echo -e "4. test-4"
    echo -e "0. Exit menu\n\n"
    #-en 选项会去掉末尾的换行符,这让菜单看起来更专业一些
    echo -en "Enter option:"
    #read 命令读取用户输入
    read -n 1 option
}

menu
case $option in
0)
    exit ;;
1)
    connect_host test-1  ;;
2)
    connect_host test-2 ;;
3)
    connect_host test-3 ;;
4)
    connect_host test-4;;
*)
    clear
    echo "sorry,wrong selection" ;;
esac

echo -en "thit any to contunue"
复制代码

 

三、用户登录自动执行脚本

由于开发人员,统一使用用户:develop来进行登录。

因此,将star.sh脚本,放到路径/home/develop目录下。

修改环境脚本

vi /home/develop/.bash_profile

最后一行,增加内容:

bash ~/start.sh

 

使用develop登录,效果如下:

 

 

 

 

本文参考链接:

https://www.jianshu.com/p/091738dbab8e

posted @   肖祥  阅读(1567)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2018-04-04 python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)
点击右上角即可分享
微信分享提示