菜单
一种常见的交互类型称为 菜单驱动. 在菜单驱动的程序中,用户会看到一个选项列表,并被要求选择一个。 例如,我们可以想象一个呈现以下内容的程序:
请选择:
1. 显示系统信息
2. 显示磁盘空间
3. 展示家居空间利用率
0. 退出
输入选择 [0-3] >
请选择:
1. 显示系统信息
2. 显示磁盘空间
3. 展示家居空间利用率
0. 退出
输入选择 [0-3] >
使用我们从写作中学到的东西 系统信息页面 程序,我们可以构造一个菜单驱动的程序来执行上面菜单上的任务:
#!/斌/庆典
# read-menu:一个菜单驱动的系统信息程序清除
回声"
请选择:
1. 显示系统信息
2. 显示磁盘空间
3. 展示家居空间利用率
0. 退出”
read -p "输入选择 [0-3] > "
#!/斌/庆典
# read-menu:一个菜单驱动的系统信息程序清除
回声"
请选择:
1. 显示系统信息
2. 显示磁盘空间
3. 展示家居空间利用率
0. 退出”
read -p "输入选择 [0-3] > "
如果 [[ $REPLY =~ ^[0-3]$ ]]; 然后如果 [[ $REPLY == 0 ]]; 然后
echo "程序终止。" 出口
fi
如果 [[ $REPLY == 1 ]]; 然后回显“主机名:$HOSTNAME”正常运行时间
出口
fi
如果 [[ $REPLY == 2 ]]; 然后 df -h
出口
fi
如果 [[ $REPLY == 3 ]]; 然后
如果 [[ $(id -u) -eq 0 ]]; 然后
echo "家庭空间利用率(所有用户)" du -sh /home/*
其他
echo "家庭空间利用率 ($USER)" du -sh $HOME
出口
其他
echo "无效输入。" >&2 退出1
fi
如果 [[ $REPLY =~ ^[0-3]$ ]]; 然后如果 [[ $REPLY == 0 ]]; 然后
echo "程序终止。" 出口
fi
如果 [[ $REPLY == 1 ]]; 然后回显“主机名:$HOSTNAME”正常运行时间
出口
fi
如果 [[ $REPLY == 2 ]]; 然后 df -h
出口
fi
如果 [[ $REPLY == 3 ]]; 然后
如果 [[ $(id -u) -eq 0 ]]; 然后
echo "家庭空间利用率(所有用户)" du -sh /home/*
其他
echo "家庭空间利用率 ($USER)" du -sh $HOME
出口
其他
echo "无效输入。" >&2 退出1
fi
这个脚本在逻辑上分为两部分。 第一部分显示菜单并输入用户的响应。 第二部分识别响应并执行选定的操作。 注意使用 出口 此脚本中的命令。 此处用于防止脚本在执行操作后执行不必要的代码。 程序中存在多个退出点通常是一个坏主意(它使程序逻辑更难理解),但它在此脚本中有效。