博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
菜鸟学Linux 第031篇笔记 script,控制,while,function
阅读量:5888 次
发布时间:2019-06-19

本文共 2244 字,大约阅读时间需要 7 分钟。

菜鸟学Linux 第031篇笔记 script,控制,while,function

一、脚本需求:

说明:此脚本能于同一个repo文件中创建之个yum源的指向:

1.接受一个文件名作为参数,此文件存放至/etc/yum.repos.d/目录中,

且文件名以.repo为后缀; 要求此文件不能事先存在,否则报错,提示已有此文件

2.在脚本中,提醒用户输入repo id;如果为quit,则退出脚本;否则,继续完成下面步骤

3.repo name 以及baseurl的路径,而后以repo文件的格式将其保存至指定的文件中;

4.enabled默认为1,而gpgcheck默认为0

5.此脚本会循环多次,除非用户为repo id 设定为quit, 并退出

Script key (脚本不怎么健壮仅做输入正确使用)

#!/bin/bash

#

REPOFILE=/etc/yum.repos.d/$1

if [ -e $REPOFILE ]; then

  echo "$1 is existed or you didn't input anything."

  exit 5

fi

read -p "Repository ID:" REPOID

until [ $REPOID == 'quit' ]; do

  echo "[$REPOID]" >> $REPOFILE

  read -p "Repository name:" REPONAME

  echo "name=$REPONAME" >> $REPOFILE

  read -p "Repository Baseurl:" REPOURL

  echo "baseurl=$REPOURL" >> $REPOFILE

  echo -e 'enabled=1\ngpgcheck=0\n\n' >> $REPOFILE

  read -p "Repository ID:" REPOID

done

二、脚本需求

1.判断一个指定的bash脚本是否有语法错误:如有错误则提醒用户键入

Q或q无视错误并退出,其它键入任何键直接通过vim打开该脚本进行编辑

2.如果用户通过vim打开编辑后保存退出时仍然有错误,则重要第一步;否则关闭

script2 key (脚本不怎么健壮仅做输入正确使用)

#!/bin/bash

#

until bash -n $1 &> /dev/null; do

  read -p "$1 file syntax error.[Qq] to quit, others for editing:" CHOICE

  case $CHOICE in

  q|Q)

echo "$1 file is wrong in syntax, quiting..."

exit 5

;;

  *)

vim $1

;;

  esac

done

循环控制

while, until, for

break 提前退出循环

continue 提前结束本轮循环,而进入下一轮循环;

while循环特殊用法

1.死循环(在不知道要执行多少次循环时可用此招,

但里边最好有中断break条件,不然真的就死循环了,你懂得)

while :; do

statement

done

2.从头读取某文件中的每一行并对其进行操作

while read LINE; do

statement

done < /PATH/TO/SOMEFILE

函数:功能 function

代码重用

库:so shared object

一、定义函数

1.

function function_name {

command

函数体

}

2.(注意函数名后边紧跟小括号)

FUNCNAME() {

command

函数体

}

二、自定义函数执行状态返回值

return #

#为数字0-255

函数如果被调用时遇到return #语句则后边的函数体语句不被执行

与exit # 在主函数体里类似

三、给函数传递参数

给脚本传递参数

./a.sh m n

$1 m

$2 n

给函数传递参数类似(在调用函数时直接后接参数,在函数体内用$1,$2)

FUNCNAME() {

command $1 $2

函数体

}

FUNCTIONNAME M N

执行返回值

命令执行时标准输出到屏幕上的东东

执行状态返回值

命令执行完成后执行正确或错误会有一个执行状态返回值,

此信息不会直接显示到标准输出,使用echo $?可以查看该值

条件判断里的条件可以引用执行状态返回值

写脚本

判定192.168.0.230-254之间的主机哪里在线。要求

1.使用函数实现一台主机的判定过程

2.在主程序中调用此函数

script key

#!/bin/bash

#

PING(){

  if ping -c1 -w1 $1 &> /dev/null;then

return 0

  else

return 1

  fi

}

for I in {30..35};do

  PING 10.217.3.$I

  if [ $? -eq 0 ]; then

echo "10.217.3.$I is up"

  else

echo "10.217.3.$I is down"

  fi

done

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

Winthcloud

你可能感兴趣的文章
PHP 程序员的技术成长规划
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
js replace,正则截取字符串内容
查看>>
作业2
查看>>
nginx的信号量
查看>>
云im php,网易云IM
查看>>
c语言打开alist文件,C语言 文件的打开与关闭详解及示例代码
查看>>
DEFERRED_SEGMENT_CREATION
查看>>
Ada boost学习
查看>>
开源 java CMS - FreeCMS2.3字典管理
查看>>
block,inline和inline-block概念和区别
查看>>
移动端常见随屏幕滑动顶部固定导航栏背景色透明度变化简单jquery特效
查看>>
python基础---网络编程(socket编程)
查看>>
br-ex绑定的物理接口不能配置ip的原因
查看>>
centos6.x中fstab配置文件出错导致无法启动及忘记root密码解决方法
查看>>
Linux命令汇总
查看>>
C#静态类、静态构造函数,类与结构体的比较
查看>>
SVN+Gearman构建异步式代码分布系统
查看>>
在linux系统中I/O 调度算法
查看>>
mysql重要参数总结---不断更新中
查看>>