shell函数与read命令

shell函数与read命令

本文主要介绍三个知识点,shell函数的封装,read命令是使用,突出打印echo -e的使用。

一. shell 函数

我们知道shell脚本 执行是从文件上执行到下 但是脚本文件中的函数是不会执行的
shell函数封装

[ function ] funname [()]

{

    action;

    [return int;]

}

eg:

#!/bin/bash
function func_ret_test(){

    a=7;
    #b=$[a+1]
    #c=`expr $a + $b`
    let b=a+1
    let c=a+b

    return $c
}


echo "test a function start"
    func_ret_test
    echo $?
echo "test a function end"

二. read 命令使用

我们编写shell脚本时 有时需要从标准输入中获取一些信息来控制脚本运行,这里就需要用到read命令。

//使用shell脚本时,必不可少从终端输入获取一些信息,这里就需要使用read命令
read -参数
-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
-d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
-p 后面跟提示信息,即在输入前打印提示信息。
-e 在输入的时候可以使用命令补全功能。
-n 后跟一个数字,定义输入文本的长度,很实用。
-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
-t 后面跟秒数,定义输入字符的等待时间。
-u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。

eg:输入一个值给max变量

max=1
read -p "enter printf count i:" max
if [ $max = 0 ];then
    echo "used default $max"
else
    echo "max is $max"
fi

三. 突出打印

编写脚本时,如果我们想突出一些打印的内容我们应该怎么去实现呢。这里就需要使用到echo -e :
echo -e “\003[背景颜色;文字颜色;显示方式m字符串\003[0m”

上面可以拆开使用
修改终端输出:
echo -e "\003[背景颜色;文字颜色;显示方式m“

结束配置的输出格式
echo -e “\003[0m”

eg: echo -e "\033[40;31;5mSomething string\033[0m"
  • 背景颜色, 文字颜色,显示方式,可以随意搭配,如果缺失某一项将使用默认选项;
  • -e 是命令 echo 的一个可选项,它用于激活特殊字符的解析器,可以转义反斜杠字符;
  • \033 引导非常规字符序列;
  • m 意味着设置属性然后结束非常规字符序列,显示的字符串之前有一个 m ;
显示方式含义
0关闭所有属性
1设置高亮
4下划线
5闪烁
7反显
8消隐
文字颜色背景颜色颜色
3040黑色
3141红色
3242绿色
3343黄色
3444蓝色
3545紫红色
3646青蓝色
3747白色

四. 综合示例

综合前面所描述的我们实现一个脚本,在etc目录下寻找我们输入的一个文件命令,并且红色打印出来。

#!/bin/bash
function find_etcfile(){
    echo "find_ectfile function\n"

    file="testfile"
    tmpfile="test"

    read -p "please enter a file name:" file
    for tmpfile in $(ls /etc)
    do
        if test $tmpfile = $file;then
           echo -e "\033[31m$file\033[0m"
        fi
    done
}

echo "test a function start"
    find_etcfile
echo "test a function end"

实测结果
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值