Shell函数练习

1. 编写函数,实现打印绿色OK和红色FAILED 判断是否有参数,存在为Ok,不存在为FAILED

[root@template shellScript]# cat ex1.sh
# 编写函数,实现打印绿色OK和红色FAILED 判断是否有参数,存在为Ok,不存在为FAILED
#!/bin/bash
fun(){
if [ $# -ne 0 ]
then
        echo -e "\033[32m OK \033[0m"
else
        echo -e "\033[31m FAILED \033[0m"
fi
}
read -p "plz input sth..." str
fun $str
[root@template shellScript]# ./ex1.sh
plz input sth...1qw11d1d
 OK
[root@template shellScript]# ./ex1.sh
plz input sth...
 FAILED

运行效果图:
Shell函数练习

2. 编写函数,实现判断是否无位置参数,如无参数,提示错误

[root@template shellScript]# cat ex2.sh
# 编写函数,实现判断是否无位置参数,如无参数,提示错误
#!/bin/bash
fun() {
  if [ $# -eq 0 ]
  then
    echo "无位置参数"
  else
    echo "位置参数为$@"
  fi
}

read -p "plz input sth..." str
fun $str

运行截图:
Shell函数练习

3. 编写函数实现两个数字做为参数,返回最大值

# 此方法不能比较负数的大小
[root@template shellScript]# cat ex3.sh
# 编写函数实现两个数字做为参数,返回最大值
#!/bin/bash
fun(){
# 判断输入是否是数字
if [[ $a =~ ^[0-9]*$ ]] && [[ $b =~ ^[0-9]*$ ]]
then
        # 比较大小
        if [ $a -gt $b ]
        then
                echo "$a > $b"
        elif [ $a -lt $b ]
        then
                echo "$a < $b"
        else
                echo "$a = $b"
        fi
else
        echo "请输入俩个数字!!!"
fi
}


# 输入负数也可以比较大小
# read -p "plz input two num:" a b
read -p "plz input num1:" a
read -p "plz input num2:" b
fun $a $b

测试截图:
Shell函数练习

方式二:

[root@template shellScript]# cat ./ex3_2.sh
#!/bin/bash
read -p "please input two number:" a b
fun(){
[ -z "$a" -o -z "$b" ] && {
echo "please input 'two' number"
exit 1
}
expr $a + 10 &>/dev/null
return_a=$?
expr $b + 10 &>/dev/null
return_b=$?
[ "$return_a" -eq 0 -a "$return_b" -eq 0 ] || {
echo "please input two 'number'"
exit 2
}
[ "$a" -lt "$b" ] && {
echo "$a < $b"
exit 0
}
[ "$a" -eq "$b" ] && {
echo "$a = $b"
exit 0
}
[ "$a" -gt "$b" ] && {
echo "$a > $b"
exit 0
}
}
fun $a $b

运行截图:
Shell函数练习

原文链接:https://www.cnblogs.com/sre-chan/p/17278868.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Shell函数练习 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • Linux FTP 命令全集

    Linux FTP 命令全集 下面就所有命令给出解释和例子。 说明:  1. remote-file 指远程文件,即服务器上的文件 2. local-file  指本地文件,即本地机器上的文件 2 登录登出命令 2.1 ftp $ ftp 192.168.0.2 格式: ftp [host] Host为ftp主机ip,此命令用来登录ftp服务器,登录后会提示…

    Linux 2023年4月12日
    00
  • Linux正则表达式练习

    练习一 1、生成30位的随机口令 [root@centos7 ~]#cat /dev/urandom | tr -dc “[:alnum:]” | head -c30 RJL5qcA5PsQHnYE4kXui0oNkm1FNh1 2、判断主机版本号 [root@centos7 ~]#grep -o “[0-9]\+” /etc/centos-release …

    Linux 2023年4月11日
    00
  • 详解VMware12安装centOS8的配置图文教程(vm虚拟机安装centos8教程)

    下面是详解 “VMware 12安装CentOS 8的配置图文教程(VM虚拟机安装CentOS 8教程)” 的完整攻略: 1. 下载VMware和CentOS 8 首先需要下载VMware 12版本,可以从官网(https://www.vmware.com/)下载免费版的VMware workstation player 12。另外,也需要从CentOS官网…

    Linux 2023年5月24日
    00
  • Linux DD

     time有计时作用,dd用于复制,从if读出,写到of。if=/dev/zero不产生IO,因此可以用来测试纯写速度。同理of=/dev/null不产生IO,可以用来测试纯读速度。bs是每次读或写   的大小,即一个块的大小,count是读写块的数量。   指定出读取,写入文件到硬盘的速度   1.测/目录所在磁盘的纯写速度:   [root@base-d…

    Linux 2023年4月13日
    00
  • [Linux] Ubuntu 19.10 server 配置静态IP

    cat /etc/netplan/50-cloud-init.yaml   network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: false addresses: [192.168.1.102/24] gateway4: 192.168.1.1 nameservers: addres…

    Linux 2023年4月13日
    00
  • JAVA如何利用Swiger获取Linux系统电脑配置相关信息

      最近开发java应用程序,涉及到获取Linux服务器相关配置的问题,特地网上搜寻了下,采用Swiger包可以直接获取,再次小结一下,以便于以后能方便使用,也便于其他童鞋们学习。 推荐大家参考链接:https://www.cnblogs.com/kabi/p/5209315.html 值得注意的问题是: 1.如果是Linux的环境下,要把libsigar-…

    Linux 2023年4月11日
    00
  • centos7 PHP环境搭建 GD库 等插件安装方法

    CentOS 7 PHP环境搭建GD库等插件安装方法 在 CentOS 7 上搭建 PHP 环境并安装 GD 库等插件可以通过以下步骤完成。 安装 PHP 在 CentOS 上安装 PHP 可以使用 yum 命令轻松完成: sudo yum install php 安装 GD 库 安装 GD 库依赖库: sudo yum install -y libpng-…

    Linux 2023年5月14日
    00
  • python2.7之MySQLdb模块 for linux安装

    1.下载:MySQL-pythonhttp://sourceforge.net/projects/mysql-python/files/mysql-python-test/1.2.3b1/MySQL-python-1.2.3b1.tar.gz/downloadtar -zxf MySQL-python-1.2.3b1.tar.gzcd MySQL-pytho…

    Linux 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部