开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

linux命令:function脚本编程之函数

简介:
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

?function命令简介:

? ? ? ?定义函数

1.命令格式:

function 函数名 {

? content ? ? ?#内容

?}

或者

? ?函数名() {

? ?content ?#内容

}

调用函数只要在需要调用的地方输入函数名即可

2.命令功能:

使得脚本简洁,调用重复内容

3.命令参数:

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

? ?return # ? #为0-255

? ?且函数可以接受参数

? ?FUNCTION () {

? ? content

?}

? FUNCTION 5 6

? $1=5

? $2=6

4.命令实例:

?1、使用函数添加用户,函数执行状态返回值使用return定义,并传输一个参数给函数。

? vim useradd.sh

#!/bin/bash

#

?USERADD () {

? ? ?USERNAME=$1

? ?if ! id -u $USERNAME &> /dev/null ; then

? ? ?useradd $USERNAME

? ? ?echo "$USERNAME" | passwd --stdin $USERNAME &> /dev/null

? ? ? ?return 0

? ? else

? ? ? echo "$USERNAME is exist."

? ? return 3

? ?fi

?}

?USERADD $1

?if [ $? -eq 0 ]; then

? ?echo "useradd user finished"

? else

? ?echo "useradd user failure"

?fi

?2、使用函数调用,进行ping命令

vim PING.sh

? #!/bin/bash

? #

??

? ?PING() {

? ? ? if ping -c 1 -W 1 $1 &> /dev/null ; then

? ? ? ? ? ?return 0

? ? ? ? else

? ? ? ? ? ?return 1

? ? ? fi

? ?}

? for I in {96..106}; do

? ? ?if PING ?192.168.1.$I &> /dev/null ; then

? ? ? ? ? echo "192.168.1.$I is up"

? ? ? ? ?else

? ? ? ? ? echo "192.168.1.$I is down"

? ? ?fi

? done

??

? for I in {96..106}; do

? ? ?if PING ?172.16.1.$I &> /dev/null ; then

? ? ? ? ?echo "172.16.1.$I is up"

? ? ? ?else

? ? ? ? ?echo "172.16.1.$I is down"

? ? ?fi

? done

3、写一个脚本;使用函数完成

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

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

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

? 2、在主程序中调用函数;

? 扩展1:在主程序中,让用户自己输入用户后,传递给函数来进行判断;

? 扩展2:在主程序中,输入用户名判断后不退出脚本,而是提示用户继续输入下一个用户

? ? ? ? 如果用户输入的用户不存在,请用户重新输入;但如果用户输入的是Q或q就退出;

?#!/bin/bash

?#

?USERID () {

? ?if id -u $1 &> /dev/null ; then

? ? ? ?echo "`grep '^$1' /etc/passwd | awk -F : '{print $NF,$3}'`"

? ? ? ?return 0

? ? ?else

? ? ? ?echo "$1 is not exist."

? ? ? return 3

? ?fi

}? ?


?read -p "Input one UserName:" USERNAME

?until [ $USERNAME == 'q' -o $USERNAME == 'Q' ]; do

? ? ?USERID $USERNAME

? ? ? ? if [ $? -eq 0 ]; then

? ? ? ? ? ??read -p "Input one UserName:" USERNAME?

? ? ? ? ? else

? ? ? ? ? ??read -p "No $USERNAME,please Input one UserName Again:" USERNAME

? ? ? ? fi

done

? ? ??











本文转自wang650108151CTO博客,原文链接: http://blog.51cto.com/woyaoxuelinux/1878727,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux的10个最危险命令
Linux的10个最危险命令
130 0
11月29日云栖精选夜读 | Linux里10个最危险的命令
Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候。 这篇文章将会向你介绍十条命令,但你最好不要尝试着去使用。 当然,以下命令通常都是在root权限下才能将愚蠢发挥到无可救药;在普通用户身份下,破坏的只是自己的一亩三分地。
2605 0
一些极度危险的linux命令
在linux中有些命令可能功能强大,方便快捷,但是这些命令在测试环境中有些可以用,但别在生产上挑战。有些命令一敲,可能你的职业生涯由此转折。 关于rm -rf ? 对于这个命令真没什么好说的,最好的挽救措施就是备份,可能在有些环境中这类命令都是禁用的,但是不管怎么样,注意备份。
651 0
[linux]永远不要在 Linux 执行的 10 个最危险的命令
Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正 在做什么时候。这篇文章并不打算引来你对Linux或linux 命令行的愤怒。
1183 0
Linux常用命令大全
pwd:显示当前路径 rmdir 删除空目录 ls 查看目录或文件信息 vi 文本编辑器 cp 复制 mv 移动 rm 删除文件或目录 find 查找文件 grep 过滤 cat 显示文本文件内容
52 0
Linux常用命令大全
Linux命令是我们学习大数据以及计算机相关知识的重要环节,Linux相比windows它的命令更加强大,可以完全通过命令来控制计算机,下面我将我了解到的命令列举一下,仅供大家参考:
63 0
最常用的Linux命令大全
最常用的Linux命令大全
88 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
《使用Serverless服务快速开发小程序》
立即下载
从 Linux 系统内核层面来解决实际问题的实战经验
立即下载
ECS系统指南之Linux系统诊断
立即下载


http://www.vxiaotou.com