linux shell 函数与脚本调试

**函数:**

1. **函数定义**:

使用 `function` 关键字或者直接写函数名来定义函数。

function my_function() {
echo "函数内容"
}

my_function() {
echo "函数内容"
}

2. **函数调用**:

直接使用函数名来调用函数。

my_function

3. **函数参数**:

可以在函数中使用参数来传递值。

greet() {
echo "Hello, $1"
}

greet "Alice"

4. **返回值**:

使用 `return` 语句来返回值给调用者。

calculate() {
result=$((num1 + num2))
return $result
}

calculate
echo "结果为: $?"

调试:**

1. **输出调试信息**:

使用 `echo` 输出调试信息,以便观察程序执行过程。

echo "正在执行..."

2. **设置调试模式**:

使用 `set -x` 开启调试模式,会输出每行执行的命令。

#!/bin/bash
set -x
echo "调试模式启动"

3. **调试时暂停**:

使用 `read` 命令来暂停脚本的执行,以便观察输出。

echo "执行到此暂停"
read

4. **调试完成**:

使用 `set +x` 关闭调试模式。

set +x
echo "调试模式关闭"

5. **脚本位置变量**:

使用 `$0` 获取脚本名,`$1`、`$2` 等获取参数。

echo "脚本名: $0"
echo "第一个参数: $1"

6. **错误输出**:

使用 `2>` 将错误输出导向文件,以便查看错误信息。

./myscript.sh 2> error.log

7. **调试变量**:

使用 `set -x` 启用调试模式后,可以看到每行执行的命令及其参数的值。

set -x
var="Hello"
echo "变量值: $var"
set +x

8. **调试特定部分**:

使用 `set -x` 和 `set +x` 来仅在需要的部分启用和关闭调试模式。

# 调试模式启用
set -x
echo "这里启用了调试模式"
set +x

9. **输出变量值**:

使用 `echo` 输出变量的值,以确保其在运行时正确。

echo "变量 var 的值为: $var"

10. **调试语句块**:

使用花括号 `{}` 将需要调试的代码块括起来。

{
set -x
# 需要调试的代码
set +x
}

11. **调试工具**:

使用工具如 `bash -x script.sh` 或者调试器 `bashdb` 进行更高级的调试。

12. **调试器工具**:

使用工具如 `bashdb` 来进行更高级的脚本调试,支持断点等功能。

13. **错误处理**:

使用 `set -e` 开启错误终止模式,一旦发生错误脚本会终止执行。

set -e
echo "这里是一行错误的命令"
echo "这行不会执行"

14. **忽略错误**:

使用 `command || true` 来执行命令,即使发生错误也不会终止脚本。

command_that_might_fail || true

15. **查找问题**:

使用 `echo`、`printf` 或者 `read` 来输出中间结果,帮助定位问题。

echo "正在执行到这里"

16. **调试环境**:

在测试环境中进行调试,避免在生产环境直接应用可能存在问题的脚本。

posted @ 2023-08-20 15:30  乐瓜乐虫  阅读(99)  评论(0编辑  收藏  举报