#!/bin/bash # function menu { clear echo echo -e "\tSys Admin Menu\n" echo -e "\t1. Display disk space" echo -e "\t2. Display logged on users" echo -e "\t3. Display memory usage" echo -e "\t0. Exit program\n\n" echo -en "\tEnter option:" read -n 1 option } function diskspace { clear df -k } function whoseon { clear who } function menusage { clear cat /proc/meminfo } while [ 1 ] do menu case $option in 0) break;; 1) diskspace;; 2) whoseon;; 3) menusage;; *) clear echo "Sorry, wrong selection";; esac echo -en "\nHit any key to continue" read -n 1 line done clear
时间: 2024-04-27 13:25:20 浏览: 19
这是一个 Bash 脚本,其中包含了三个函数:menu、diskspace 和 menusage。脚本使用 while 循环来持续显示菜单,接收用户的输入,并根据用户的选择调用相应的函数。
menu 函数显示一个系统管理员菜单,其中包含以下选项:
- 显示磁盘空间
- 显示登录用户
- 显示内存使用情况
- 退出程序
diskspace 函数使用 df 命令来显示磁盘空间的使用情况。
whoseon 函数使用 who 命令来显示当前登录的用户。
menusage 函数使用 cat 命令来显示系统的内存使用情况。
根据用户选择的选项,脚本会调用相应的函数来执行相应的操作,如果用户输入了错误的选项,则显示 "Sorry, wrong selection"。每次执行完操作后,脚本会等待用户按任意键继续,并清空屏幕以显示下一次菜单。最后,当用户选择退出程序时,while 循环结束,脚本结束执行。
相关问题
#!/bin/bash int=1234 [$int-lt1234] echo $?输出结果
这段代码有一些语法错误,应该修改为:
```
#!/bin/bash
int=1234
if [ $int -lt 1234 ]; then
echo $?
fi
```
这里使用 if 语句来判断 $int 是否小于 1234,然后输出结果。如果 $int 等于 1234,则不输出结果。
#!/bin/bash for time in `seq 9 -1 0`;do echo -e -n "\b$time" sleep 1 done
这是一个 Bash 脚本,它会在终端上倒计时输出数字。具体来说,它会从数字 9 开始,每隔一秒钟输出一个数字,直到输出数字 0。
脚本的具体解释如下:
- `#!/bin/bash` 是脚本的开头,用于指定脚本使用的解释器。这里使用的是 Bash,也就是 Bourne-Again SHell。
- `for time in `seq 9 -1 0`;do` 是一个循环语句,它会从数字 9 开始循环,每次减 1,直到循环到数字 0。
- `echo -e -n "\b$time"` 是输出语句,它会在终端上输出一个数字,并且在输出前使用 `\b` 实现退格操作,使得每次输出的数字覆盖上一次输出的数字。
- `sleep 1` 是一个睡眠语句,它会使脚本进程暂停执行 1 秒钟,以实现每秒输出一个数字的效果。