bash脚本之函数function

脚本编程之函数:

function:功能,结构化编程,不能独立运行,需要调用时执行,可以多次被调用

定义一个函数:

function FUNCNAME {

COMMAND

}

FUNCNAME(){

COMMAND

}

自定义执行状态返回值

return #

0-255

接受参数的函数:

FUNCNAME m n

m在function函数里面用$1引用,相应地,n对应于$2

例子:写一个脚本,使用函数完成

1.函数能够接受一个参数,参数为用户名;判断一个用户是否存在

如果存在,就返回次用户的shell和UID,并返回正常状态值

如果不存在,就说此用户不存在,并返回错误状态值

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

扩展1:在主程序中让用户输入用户名,而后传递给函数判断

扩展2:用户判断后并不直接退出,而是输入q后退出

#!/bin/bash

#

search(){

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

SHELL=`grep $1 /etc/passwd|cut -d: -f7`

UID1=`grep  $1 /etc/passwd|cut -d: -f3`

echo "User $1‘s shell is $SHELL ,UID is  $UID1"

return 0

else

echo "User $1 doesn‘t exist!"

fi

}

read -p "please input a username:  " a

while  [ "$a" != "q" ];do

search  $a

read -p "please input a username:  " a

done

时间: 2024-11-03 21:55:12

bash脚本之函数function的相关文章

Bash脚本之函数定义和调用

把那些在脚本中重复出现并且没有任何改变的代码,封装起来,在适当的场景中调用执行.程序员将这种被封装起来的代码称为功能体,或者叫模块,也称为函数.这样看来是不是和循环类似,循环也是为了方便去多次执行一堆代码,而函数是将一堆代码写在一起,起一个名字,然后在需要这堆代码的时候只需要写上函数的名字即可.在shell脚本编程中,函数是由若干条shell命令组成的语句块,函数里面的内容和shell程序形式上是一致的.不同之处就是,shell代码可以直接被执行,而函数中的内容,不能独立执行,只有被调用的时候才

bash脚本----case和function

case语句 什么时候用到case? 当多次判断变量是否属于某个字符串时候 case语句的语法格式: case  $VARAIBLE  in PAT1) 注:如果PAT1匹配到$VARAIBLE时候,执行分支1 同理 分支1 ;; 注:每一个判断条件都要双分号,同理 PAT2) 分支2 ;; ... *)  都不属于以上情况,执行分支n 分支n ;; esac   最后一个不需要  特性:case支持glob风格的通配符: *:任意长度的任意字符: ?:任意单个字符: []:范围内任意单个字符:

bash脚本的函数参数传递注意事项

第一,参数传递的是字符串(简单的字符串替换)没有指针,引用等概念 第二,参数是中间有空格的字符串传递时,小心被分割成两个参数(参数前后添加 " 或' 可避免分割) #!/bin/bash fun1() { echo "fun1()" echo "$1" echo "$2" echo "=========" } p1="hello world" fun1 ${p1} fun1 "${p1}

8.17_Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

bash shell脚本编程入门篇(三)之循环 什么是循环执行? 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 相关命令:for, while, until,selet, for命令的使用 作用: 依次将列表中的元素赋值给"变量名"; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 命令格式: for 变量名 in 列表; do 循环体(正常执行的执行命令) 语句1 语句2 语句3 ... done 列表生成方式: (

Linux基础之bash脚本进阶篇-函数

函数,什么是函数? 函数的出现最初是在数学中,它的数学定义如下:在某变化过程中有两个变量x,y,按照某个对应法则,对于给定的x,有唯一确定的值y与之对应,那么y就叫做x的函数. 而在计算机中函数的内涵发生了一些变化. 在编程中,为了简化代码量,通常会将经常调用的一些代码模块化,并一一个名字表示,当再次使用该模块时只需要输入该名字,系统会自动去读取该名字所对应的代码模块.因此在计算机中把一段独立功能的代码当做一个整体,并为之命一个名字,命名的代码段即为函数. 虽然此函数非彼函数但函数最本质的意义并

bash脚本编程之十 函数

bash脚本编程之十 函数详解 ·函数(function) function翻译成函数对于中文来讲不是特别的精确,因为function的真正意思是功能,理论上function这个英文单词既可以翻译成函数,又可以翻译成功能,但是我们数学意义上的函数和程序中的函数并不是同一个概念,所以我们如果把function称为功能可能会更合适一点,但是我们大家约定俗成通常都称其为函数,函数是实现结构化编程的一个重要思想,其主要目的是为了实现代码重用 ·库(library) 库是由一些共享对象(so->share

Shell脚本——函数(function)

做为一个经常写脚本的运维人员来讲,都能发现一个问题,很多时候我们在不同的脚本里面重复的写着同一段代码.比如我们要去使用正则表达式去判断IP地址的合法性问题,如果每次都去写一遍这个匹配IP的表达式,整个表达式写下来老长老长的,0-9的数字组合看的眼都花了,是不是很累了.当然有人会说了,保存一份正确的代码之后,需要用这段代码的时候,直接粘贴到正在编写的脚本里面不就行了嘛!是没错,但这样是不是很多脚本里面都重复存放着同一段代码,额外增加了脚本的代码量.有没有一个两全其美的办法,让我们的脚本代码量又小,

tar ,cpio打包解压. shell脚本for,while,until循环. rpm包管理,select循环菜单,函数function,yum

tar  tar -cf 路径+文件名字后续.tar  +路径 创建归档压缩 tar cf /testdir/etc.tar /etc/ tar cvf 可以查看解压过程 tar tvf 预览作用 tar xvf 解压文件 tar zcvf /testdir/etc2.tar.gz /etc/ 解压再压缩到指定路径,文件格式 tar jcvf cpio 复制 从或到文件 cpio 命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以".cpio"或者".ta

shell脚本之函数的定义及使用

函数Function的使用 定义函数 1) 函数名称() { ... ... } 2) function 函数名称 { ... ... } 调用函数 函数名称 也可以通过位置变量的方式给函数传递参数 例子: 编写脚本,实现目录管理功能,要求使用函数 #!/bin/bash # createDir() { read -p "Enter directory: " dir if [ -d $dir ]; then echo "目录$dir存在" else mkdir -p