8.2磁盘2

简介:

echo -n 不换行输出

#!/bin/bash

#

declare -i MAX=0

declare -i MIN=0

for I in {1..10};do

  MYRAND=$RAMDOM

  [ $I -eq 1 ] && MIN=$MYRAND

  if [ $I -le 9 ];then

    echo -n "$MYRAND,"

  else

    echo "$MYRAND"

  fi

  [ $MYRAND -gt $MAX ] && MAX=$MYRAND

  [ $MYRAND -lt $MIN ] && MIN=$MYRAND

done


echo $MAX

echo $MAX


面向过程:

    控制结构

         顺序结构

         选择结构

         循环结构


选择结构:

if:单分支 双分支 多分支

if CONDITION;then

   statement

   ...

fi


if CONDITION;then

   statement

   ...

else

   statement

   ...

fi


if   CONDITION;then

   statement

elif CONDITION;then

   statement

else CONDITION;then

   statement

fi


case 语句;选择结构

     变量的值

case SWITCH in

value1)

   statement

   ...

   ;;

value2)

   statement

   ...

   ;;

*)

   statement

   ...

   ;;

esac


#!/bin/bash

#

case $1 in

[0-9])

   echo "A digit" ;;

[a-z])

   echo "Lower" ;;

[A-z])

   echo "Upper" ;;

*)

   echo "Spacial character." ;;

esac


接受参数,start stop restart status其中之一

#!/bin/bash

#

case $1 in

'start')

  echo "start server ..." ;;

'stop')

  echo "stop server ..." ;;

'restart')

  echo "Restart server ..." ;;

'status')

  echo "running ..." ;;

*)

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

esac


写一个脚本,可以接收选项及参数,而后获取每一个选项,及选项的参数;

  并能根据选项及参数做出特点的操作,比如

adminusers.sh --add tom,jerry 

              --del tom,blair 

              -v|--verbose 

              -h|--help

vi debug.sh

#!/bin/bash

#

DEBUG=0

case $1 in

-v|--verbose)

   DEBUG=1 ;;

*)

  echo "Unkown options"

  exit 7

  ;;

esac


[ $DEBUG -eq 1 ] && echo hello


vi adduser.sh

#!/bin/bash

#

DEBUG=0

ADD=0

DEL=0

case $1 in

-v|--verbose)

   DEBUG=1 ;;

esac


useradd tom &> /dev/null

[ $DEBUG -eq 1 ] && echo "Add user finished"


vim adminusers.sh

#!/bin/bash

#

DEBUG=0

ADD=0

DEL=0


for I in `seq 1 $#`;do

case $1 in

-v|--verbose)

  DEBUG=1 

  shift $1 ;;

-h|--help)

  echo "Usage:`bashname $0` --add USER_LIST --del USER_LIST -v|        verbose -h|--help "

  exit 0  ;;

--add)

  ADD=1

  ADDUSERS=$2

  shift 2 ;;

--del)

  DEL=1

  DELUSERS=$2

  shift 2 ;;

#*)

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

#  exit 7  ;;

esac

done


if [ $ADD -eq 1 ];then

  for USERS in `echo $ADDUSERS | sed 's@,@ @g'` ;do

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

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

    else

      useradd $USER

      [ $USER -eq 1 ] && echo "$USER finished"

    fi

  done

fi


if [ $DEL -eq 1 ];then

  for USERS in `echo $DELUSERS | sed 's@,@ @g'` ;do

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

       usedell -r  $USER;

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

    else

       [ $USER -eq 1 ] && echo "$USER not exist"

    fi

  done

fi






















     

































































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




相关文章
|
6天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
16天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
10天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
621 216
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
860 61
|
8天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1335 157
|
5天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
249 138
|
7天前
|
存储 安全 固态存储
四款WIN PE工具,都可以实现U盘安装教程
Windows PE是基于NT内核的轻量系统,用于系统安装、分区管理及故障修复。本文推荐多款PE制作工具,支持U盘启动,兼容UEFI/Legacy模式,具备备份还原、驱动识别等功能,操作简便,适合新旧电脑维护使用。
550 109