菜鸟学Linux 第022篇笔记 case语句、脚本

简介:

菜鸟学Linux 第022篇笔记  case语句



面向过程

控制结构

顺序结构

选择结构

循环结构

面向对象



选择结构

if:单分支、双分支、多分支

单: if condition; then

  statement

  ...

fi

多: if condition; then

  statement1

  ...

elif condition2; then

  statement2

  ...

fi

case 语句: 

case SWITCH in 

value1)

statement1

...

;;

value2)

statement2

...

;;

*)

statement*

...

;;

esac

e.g.

#!/bin/bash

#

case $1 in

'start')

  echo "Start server...";;

'stop')

  echo "Stopping server...";;

'status')

  echo "Running...";;

'restart')

  echo "Restarting server...";;

*)

  echo "`basename $0` {start|stop|restart:status}";;

esac

script 1

使脚本接受参数-v|verbalse -add user,user... 添加并显示添加信息

不加-v|verbal 则不显示,并添加-h|--help功能(注 此脚本不可接受错误参数)

#!/bin/bash

#

DEBUG=0

ADD=0

DEL=0

for S in `seq 1 $#`; do

case $1 in

-v|--verbouse)

  DEBUG=1

  shift ;;

-h|--help)

  echo "Usage: `basename $0` --add USER_LIST --del USER_LIST -v|--verbouse -h|--help"

  exit 0

  ;;

-add)

  ADD=1

  ADDUSERS=$2

  shift 2

  ;;

-del)

  DEL=1

  DELUSERS=$2

  shift 2

#*)

#  echo "Usage: `basename $0` --add USER_LIST --del USER_LIST -v|--verbouse -h|--help"

#  exit 0

#  ;;

esac

done



if [ $ADD -eq 1 ]; then

  for USER in `echo $ADDUSERS | sed 's/,/ /g'`; do

if ! id $USER &> /dev/null; then 

  [ $DEBUG -eq 1 ] && echo "ADD $USER finished."

  useradd $USER

else

  echo "$USER is exist."

fi

  done

fi


if [ $DEL -eq 1 ]; then

  for USER in `echo $DELUSERS | sed 's/,/ /g'`; do

if id $USER &> /dev/null; then 

  [ $DEBUG -eq 1 ] && echo "DEL $USER "

  userdel -r $USER

else

  echo "No such $USER "

fi

  done

fi

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1867717如需转载请自行联系原作者


Winthcloud

相关文章
|
2月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
168 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
2天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
3月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
221 6
|
1月前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
116 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
75 1
|
3月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
778 2
|
2月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
37 0
|
3月前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。