Shell脚本编程篇

#!/bin/bash
#斐波那契数列
#不要用递归,深度大于30就老火了。
function fun_test()
{
     if [ $1 -lt 3 ];then
    echo 1
    return
      fi
     sum1=1
     sum2=1
     let count=$1-2
     sum=0
     while [ $count -gt 0 ];do
    let count--
    let sum=sum1+sum2
    let sum1=sum2
    let sum2=sum
     done
     echo $sum
}
val=$(fun_test $1)
echo $val

#!/bin/bash
求输入的一串数字中的最大数,最小数以及平均数(保留2位小数)
Maxsum=$1
Minsum=$1
sum=$1
count=$#
shift 1
while [ $# -gt 0 ];do
    if [ $Maxsum -lt $1 ];then
    let Maxsum=$1
    fi
    if [ $Minsum -gt $1 ];then
    let Minsum=$1
    fi
    let sum+=$1
    shift
done
echo "Max::" "$Maxsum"
echo "Min::" "$Minsum"
val=`echo "scale=2;$sum/$count" | bc`
echo "pingjun::" "$val"

#!/bin/bash
#递归当前目录下面所有目录文件。
function fun_test()
{
    ls $1 | while read line
    do
        DIR="$1/$line"
        if [ -d $DIR ];then
        echo "dir: " "$DIR"
                fi
    [ -d $DIR ] &&
    {
        fun_test $DIR
    }
    done
}
fun_test .

//最好使用单引号,这更加符合标准,然后加上-E选项或者egrep。
.匹配任意一个字符,只要在行里面包含这个模式就会按该行展示。
[]匹配括号中的任意一个字符,[abc]就只能匹配a或者b或者c一个字符。
[-]在括号内表示范围,echo "test" | grep -E ‘tes[a-z]‘
[^]在括号里面的取相反的结果。
[[:alpha:]]匹配一个字母。
?匹配前面的单元一次或者零次。
+匹配它前面的单元一次或者多次。
*紧跟它前面的单元匹配零次或者多次。
{n}在-E选项中不需要使用\,表示前面这个单元重复n次,包括前面这个单元。
{n,m}重复前面单元n到m次,也包括前面这个单元。
{n,}重复前面这个单元至少n次。
{,n}重复前面这个单元最多n次。
上面这四个正则表达式都是闭包的。
^匹配行首的位置。
$匹配行未的位置。
<匹配单词开始的地方。
>匹配单词结束的地方。
<>匹配一个单词。
\b匹配单词开头或者结束的位置。
\B匹配非单词开始或者结束的位置。
^$匹配空行的位置。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2025-01-02 18:38:59

Shell脚本编程篇的相关文章

shell脚本编程之基础篇(二)

shell脚本编程之基础篇(二) ============================================================================== 概述: ============================================================================== 退出状态 ★进程使用退出状态来报告成功或失败 ◆0 代表成功,1-255代表失败 ◆$? 变量保存最近的命令退出状态 (查看:echo $?)

Linux shell脚本编程基础之练习篇

shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash if [ $# -ne 1 ] then echo "请输入一个参数" exit else echo "参数正确" newfile=$1 fi #echo `grep "^#\!" ${newfile}` if ! grep "^#\!" ${newfile} &>/

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

8.15_Linux之bash shell脚本编程入门篇(二)以及文件查找和压缩的使用

bash shell脚本编程入门篇(二) read命令的使用 作用: 使用read来把输入值分配给一个或多个shell变量: -p指定要显示的提示 -t TIMEOUT read从标准输入中读取值,给每个单词分配一个变量,所有剩余单词都被分配给最后一个变量 EX.read -p "Enter a filename:" FILE 条件选择之if的使用 if的作用:选择执行(注意:if语句可嵌套) 单分支 if 判断条件;then 条件为真的分支代码 fi EX.单分支案例 双分支 if

8.17_Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

bash shell脚本编程入门篇(三)之循环 什么是循环执行? 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 相关命令:for, while, until,selet, for命令的使用 作用: 依次将列表中的元素赋值给"变量名"; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 命令格式: for 变量名 in 列表; do 循环体(正常执行的执行命令) 语句1 语句2 语句3 ... done 列表生成方式: (

shell脚本编程高级篇

SHELL脚本编程进阶循环执行:简单来说就是把一些指令重复循环. 循环代码具体的指令有三种: for , while , until其中for, while用的最多.for循环 for 变量名 in 列表;do 循环体 done 关键字的帮助都是用help来查询.for循环语法:在shell编程中 for,in,do,done.这些都是他的关键字,其中循环的指零就放在do和done之间.WORDS决定了循环次数.循环的次数由in 后面跟的WORDS(字符串)的数量决定.字符串的个数决定了do和d

8.11_Linux之bash shell脚本编程入门篇(一)

什么是bash shell脚本编程? 答:Linux里面有多种shell,而CentOS和redhat的默认shell是bash shell.至于shell脚本,这个跟windows操作系统里面的批处理文件有点像(.bat的文件).不知道大家还是否记得Linux的哲学思想吗?其中有那么两点点:由众多目的的单一应用程序组成:一个程序只做一件事,且做好:组合目的的单一的小程序完成复杂的任务.我觉得shell脚本编程就很好的体现了这个哲学思想.shell脚本利用shell的功能缩写的一个"程序&quo

关于shell脚本编程第一篇

shell脚本编程(1)脚本的基本格式:              程序:指令+数据程序编程风格分为两种:                    过程式:以指令为中心,数据服务于指令                    对象式:以数据为中心,指令服务于数据过程式编程有以下几个特点:                        顺序执行                        循环执行                        选择执行shell编程:          过程式.解释

shell 脚本编程基础篇

一级标题 二级标题 1.编程基础 Linus:Talk is cheap, show me the code 程序组成 程序:算法+数据结构 数据:是程序的核心 算法:处理数据的方式 数据结构:数据在计算机中的类型和组织方式 面向过程语言 做一件事情,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如 果出现了情况B,做什么处理 问题规模小,可以步骤化,按部就班处理 以指令为中心,数据服务于指令 C,shell 面向对象语言 一种认识世界.分析世界的方法论.将万事万物抽象为各