根据用户选择执行命令的一段简单Linux Shell

通过使用bash脚本简化Linux环境下的XAMPP启动、停止、重启及查看状态的操作,避免每次输入命令的繁琐。介绍了两种方法:使用if语句和case语句实现功能,同时强调了pass变量的重要性及语法细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近换到linux,装了xampp,想来启动xampp每次都输入命令着实有点太麻烦啊!是不。想着写点东西来,简化一下。

想到了bash,马上对着搜来的教程就写上了,虽说很短,实在也费了咱点时间。由于受到其他高级编程语言语法的影响,bash也有类似的语法,作用是一样的,但这这语法看起来实在有点别扭了。

入正题,两种方法,上代码:

首先是if的

 1 #!/bin/bash
 2 echo "你想干嘛?"
 3 pass="××××"
 4 select var in "启动Apache" "重启Apache" "停止Apache" "目前状态";do
 5     break;
 6 done
 7 if [ "$var" = "启动Apache" ]; then
 8     echo $pass | sudo -S /opt/lampp/lampp start;
 9 elif [ "$var" = "重启Apache" ]; then
10     echo $pass | sudo -S /opt/lampp/lampp restart;
11 elif [ "$var" = "停止Apache" ]; then
12     echo $pass | sudo -S /opt/lampp/lampp stop;
13 elif [ "$var" = "目前状态" ];then
14     echo $pass | sudo -S /opt/lampp/lampp status;
15 fi

 

刚开始时,最后一行报错:“语法错误: 未预期的文件结尾”,搞半天。因为我看的是ubnuntu的wiki上的文章,上面有个错误,else if应该是elif,害得我搞了好久都不知道那里错了,一遍一边对语法,都没看出问题,最后发现是它的那篇教程错了。

 

第二种就是把上面的if判断改成case了,这里的case和其他语言的switch……case……可有点不一样啊。这里也搞了我半天。

 1 #!/bin/bash
 2 echo "你想干嘛?"
 3 pass="×××××"
 4 select var in "启动Apache" "重启Apache" "停止Apache" "目前状态";do
 5     break;
 6 done
 7 case "$var" in
 8 "启动"*)
 9 echo $pass | sudo -S /opt/lampp/lampp start;;
10 
11 "重启"*)
12 echo $pass | sudo -S /opt/lampp/lampp restart;;
13 
14 "停止"*)
15 echo $pass | sudo -S /opt/lampp/lampp stop;;
16 
17 "目前"*)
18 echo $pass | sudo -S /opt/lampp/lampp status;;
19 
20 esac

 

我就写了上面两种,其他方法没去想了,不搞那么复杂。pass变量是你的密码。

里面的”|“是管道,不能换成”;“,否则密码会直接输出到屏幕,而且还会再次要求你输入密码,以执行sudo命令。

用if判断的话不能用*通配符。

OK就这样,往桌面上一放,比每次输命令方便多了。

转载于:https://www.cnblogs.com/dyllen/archive/2013/02/01/2889634.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值