shell编程-如何定义函数如何调用函数如何调试shell

Posted 栗子~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程-如何定义函数如何调用函数如何调试shell相关的知识,希望对你有一定的参考价值。

文章目录

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


shell编程-如何定义函数、如何调用函数、如何调试shell

01 如何定义函数?

function test()



test1()


例子:
test1.sh

#!/bin/bash
function test()
    local X=1
    echo "hello world!!!-function"
    echo $1 $2
    return $X

test1()
    echo "hello world!!!"

source test.sh

02 如何调用函数?

直接用函数名调用
修改test.sh文件

#!/bin/bash
test1
test 12 13

使用命令替换间接调用:
修改test.sh文件

#!/bin/bash
TT=$(test 113 5654)
echo $TT

03 如何获取返回值?

使用$? 前一个命令退出状态,可以用来获取函数返回值:
修改test.sh文件

#!/bin/bash
test 1 2 
echo "test return: $?"

04 如何对shell函数进行调试?

写一个例子:
test1_1.sh

#!/bin/bash
for VAR in 1 2 3
do
    if[$VAR -eq 2]
    then
       continue
    fi
       echo $VAR
done

该命令用来检查是否有语法错误:

sh -n test1_1.sh

发现语法错误,修改实例:

#!/bin/bash

for VAR in 1 2 3
do
    if [$VAR -eq 2]
    then
       continue
    fi
       echo $VAR
done

shell编程是一个非常敏感的,多一个空格,少一个空格,也会编译不过去。
错误原因:
标准格式为:

if 空格 [空格 表达式 空格]
then
fi

测试一下语法:

该命令执行并调式shell脚本:

sh -x test1_1.sh

调式结果如下:

发现错误,修改脚本如下:
使用[]注意左右加空格

#!/bin/bash

for VAR in 1 2 3
do
    if [$VAR -eq 2]
    then
       continue
    fi
       echo $VAR
done

运行结果:

其中带有+表示的是shell调式器的输出,不带+代表的是程序的输出

以上是关于shell编程-如何定义函数如何调用函数如何调试shell的主要内容,如果未能解决你的问题,请参考以下文章

shell编程

Shell函数使用方法

C#编程:定义一个函数,计算两个整数相除并输出结果,然后在主函数中调用该函数 来吧,兄弟们!

跟着360架构师 学习Shell脚本编程 完整版

Shell函数,Shell数组,变量替换

shell编程——函数递归函数数组