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+1let c=a+breturn $c
}echo "test a function start"func_ret_testecho $?
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 ];thenecho "used default $max"
elseecho "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 | 消隐 |
| 文字颜色 | 背景颜色 | 颜色 |
|---|---|---|
| 30 | 40 | 黑色 |
| 31 | 41 | 红色 |
| 32 | 42 | 绿色 |
| 33 | 43 | 黄色 |
| 34 | 44 | 蓝色 |
| 35 | 45 | 紫红色 |
| 36 | 46 | 青蓝色 |
| 37 | 47 | 白色 |
四. 综合示例
综合前面所描述的我们实现一个脚本,在etc目录下寻找我们输入的一个文件命令,并且红色打印出来。
#!/bin/bash
function find_etcfile(){echo "find_ectfile function\n"file="testfile"tmpfile="test"read -p "please enter a file name:" filefor tmpfile in $(ls /etc)doif test $tmpfile = $file;thenecho -e "\033[31m$file\033[0m"fidone
}echo "test a function start"find_etcfile
echo "test a function end"
实测结果

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
