linux命令里调用函数,Linux命令:简单函数调用

脚本编程之函数: function: 功能

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

1、定义一个函数:

function FUNCNAME {

command

}

FUNCNAME()  {

command

}

2、自定义函数执行状态返回值:return #    (0-255)

3、接受参数的函数:

./a.sh m n

$1: m

$2: n

TWOINT 5 6

$1: 5

$2: 6

练习1:写一个脚本,自动显示相关信息

#!/bin/bash

# diskusage.sh

function SHOWMENU() {    #定义函数

cat << EOF

d|D) show disk usages

m|M) show memory usages

s|S) show swap usages

q|Q) quit

EOF

}

read -p "Your choice:" CHOICE

until [ $CHOICE == ‘q‘ -o $CHOICE == ‘Q‘ ];do

case $CHOICE in

d|D) df -h ;;

m|M) free -m |grep "^Mem" ;;

s|S) free -m |grep "^Swap" ;;

*) SHOWMENU

read -p "Your choice,again:" CHOICE ;;

esac

SHOWMENU

read -p "Your choice,again:" CHOICE

done

练习2:写一个脚本,自动新增用户且密码与用户相同

#!/bin/bash

# adduser.sh

#

ADDUSER() {

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

useradd $1

echo $1 | passwd --stdin $1 &> 1116.www.qixoo.qixoo.com/dev/null

return 0

else

return 1

fi

}

for I in {1..3};do

ADDUSER user$I

if [ $? -eq 0 ] ;then

echo "add user$I finished."

else

echo "user$I exists,add Failuer."

fi

done

练习3:写一个脚本,判定192.168.0.200-192.168.0.254之间的主机哪些在线。要求:

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

2、在主程序中来调用此函数判定指定范围内的所有主机的在线情况。

#!/bin/bash

# ping.sh

#

PING() {

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

return 0

else

return 1

fi

}

for I in {200..210};do

PING 10.109.131.$I

if [ $? -eq 0 ] ;then     #上一条语句执行状态结果0或1

echo "10.109.131.$1 is up."

else

echo "10.109.131.$1 is down."

fi

done

for I in {200..210};do

if PING 10.109.131.$I ;then  #彩色部分输出return的结果0或1,加反引号是echo显示的信息

echo "10.109.131.$1 is up."

else

echo "10.109.131.$1 is down."

fi

done

练习4:写一个脚本:使用函数完成

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

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

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

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

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

扩展2:在主程序中,输入用户名判断后不退出脚本,而是提示用户继续输入下一个用户名;如果用户输入的用户不存在,请用户重新输入;但如果用户输入的是q或Q就退出;

#!/bin/bash

# bash.sh

#

USER(){

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

echo "` grep ^$1 /etc/passwd |cut -d: -f3,7`"

return 0

else

return 1

fi

}

read -p "keyin your username:" USERNAME

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

if USER $USERNAME ;then         #if语句执行USER的return值0或1

read -p "keyin your username:" USERNAME

else

read -p "$USERNAME exists,Please keyin your username again:" USERNAME

fi

done

[ etc]# ./bash.sh

keyin your username:root

0:/bin/bash

keyin your username:ww

ww exists,Please keyin your username again:tt

tt exists,Please keyin your username again:root

0:/bin/bash

keyin your username:q

[ etc]#

Linux02 &sol;Linux命令简单使用

Linux02 /Linux命令简单使用 目录 Linux02 /Linux命令简单使用 1. 远程连接Linux 2. 目录相关操作 3. 简单命令 1. 远程连接Linux 远程连接工具 Xshe ...

转 PHP中exec、system等函数调用linux命令问题

PHP中exec.system等函数调用linux命令问题 先小说两句:今天研究了下PHP调用LINUX命令的功能,一开始怎么做都调用不成功,试了好久才终于成功了,所以发出来分享一下.下面我将详细介绍 ...

Linux的简单介绍和常用命令的介绍

Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...

从零单排Linux – 1 – 简单命令

从零单排Linux – 1 – 简单命令 Posted in: Linux 从零单排Linux – 1 一.Linux的简单命令: 1.忘记root密码: 读秒时按任意键进入 – e – ↓选择第二个 ...

Linux命令行及Vim简单学习记录

Linux命令行 1.打开命令行 Ctrl+Alt+t 2.目录 显示当前目录的文件列表 ls 跳转至当前目录中的x文件夹 cd x 返回根目录 cd 3.文件 新建文件1.cpp touch ./1 ...

Linux的简单命令

Linux的简单命令 1.更改linux服务器的登录密码 成功登录后输入命令: passwd 然后按照提示操作即可 2.在当前路径下新建文件夹:mkdir 新建文件夹名 3.解压和压缩文件tar.gz ...

Linux——帮助命令简单学习笔记

Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...

Xshell登陆服务器及Linux的简单命令

在之前的推文中,我已经给出了怎样利用Git登陆服务器”你在用xshell,putty登陆?推荐一个小工具(Git)登陆“其中包括xshell登陆服务器.今天讲讲常见的Linux命令,这个和之前将的利用 ...

Linux 的简单命令以及在idea中配置码云

Linux 的简单命令: ls(list)功能:列出目录内容 cd(change directory)功能:切换目录 touch 1.txt 在当前目录创建一个文件1.txt clear:清除屏幕 p ...

Linux常用命令简单总结

Liunx常用命令 1. 文件及目录管理 1.1. ls:显示目录 参数及说明 空:补显示隐含文件 -a:显示所有文件 -l:显示详细列表 1.2. chgrp:设置文件组(root权限) 用法示例 ...

随机推荐

Search and Replace

function myReplace(str, before, after) { //return str; if(before[0] === before[0].toUpperCase()){ af ...

JavaScript 中创建对象的方法(读书笔记思维导图)

面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.而 ECMAScript 中没有类的概念,所以我们可以使用 ...

openstack项目【day24】:OpenStack mitaka部署

前言: openstack的部署非常简单,简单的前提建立在扎实的理论功底,本人一直觉得,玩技术一定是理论指导实践,网上遍布个种搭建方法都可以实现一个基本的私有云环境,但是诸位可曾发现,很多配置都是重复 ...

Luogu P2490「JSOI2016」黑白棋

我博弈基础好差.. Luogu P2490 题意 有一个长度为$ n$的棋盘,黑白相间的放$ k$个棋子,保证$ k$是偶数且最左边为白子 每次小$ A$可以移动不超过$ d$个白子,然后小$ B$可 ...

BigDecimal实现末尾去掉无用0

BigDecimal 原生提供了 stripTrailingZeros 方法可以实现去掉末尾的 0,然后使用 toPlainString 可以输出数值,注意这里如果使用 toString()  会变成 ...

Jmeter卡住解决方案

windows环境下,修改jmeter.bat: set HEAP=-Xms256m -Xmx256m set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m 改为: ...

Hadoop开发环境配置1-maven安装配置

1.下载maven安装包:apache-maven-3.3.9-bin.zip 下载地址: http://archive.apache.org/dist/maven/maven-3/3.3.9/bin ...

一、Linq简介

语言集成查询Language Integrated Query(LINQ)是一系列将查询功能集成到C#语言的技术统称. 传统数据查询的缺点: 简单的字符串查询,没有编译时类型检查或Intellisen ...

Java大话设计模式

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

基于GUI的简单聊天室03

上一版本,客户端关闭后会出现“socket close”异常问题,这个版本用捕捉异常来解决,实际上只是把异常输出的语句改为用户退出之类,并没真正解决 服务器类 package Chat03; /** ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值