差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
blog:shell:01_shell_summary [2022/01/08 19:14] – 外部编辑 127.0.0.1 | blog:shell:01_shell_summary [2022/08/25 16:58] (当前版本) – caodan | ||
---|---|---|---|
行 1: | 行 1: | ||
- | # 处理ini格式的配置文件 | + | # Shell使用总结 |
+ | |||
+ | |||
+ | ## 处理ini格式的配置文件 | ||
使用两个函数, | 使用两个函数, | ||
行 54: | 行 57: | ||
- | # 数组的用法 | + | ## 数组的用法 |
定义数组: | 定义数组: | ||
行 119: | 行 122: | ||
- | # 使用脚本来管理ckermit | + | ## 使用脚本来管理ckermit |
USB转串口设备在linux下的设备名为 / | USB转串口设备在linux下的设备名为 / | ||
行 239: | 行 242: | ||
``` | ``` | ||
- | # 进制转换 | + | ## 进制转换 |
1. 使用括号表达式转换 | 1. 使用括号表达式转换 | ||
行 283: | 行 286: | ||
$ 31 | $ 31 | ||
``` | ``` | ||
- | | + | |
- | # 全局替换 | + | |
+ | ## 全局替换 | ||
替换指定目录下所有文件中的字符串 | 替换指定目录下所有文件中的字符串 | ||
行 292: | 行 296: | ||
find ./newcdr -type f | xargs sed -i ' | find ./newcdr -type f | xargs sed -i ' | ||
- | + | ## 调试脚本 set -x与set +x | |
- | # 调试脚本 set -x与set +x | + | |
调试shell脚本不需要什么特殊工具,bash本身就包含了一些选项,能够打印除脚本接受的参数和输入 | 调试shell脚本不需要什么特殊工具,bash本身就包含了一些选项,能够打印除脚本接受的参数和输入 | ||
使用选项-x, | 使用选项-x, | ||
- | $bash -x script.sh | ||
- | -x 将脚本中执行过的每一行都输出到stdout, | + | `$bash -x script.sh` |
- | set -x 在执行时显示参数和命令 | + | |
- | set +x 禁止调试 | + | -x 将脚本中执行过的每一行都输出到stdout, |
- | set -v 当命令进行读取时显示输入 | + | |
- | set +v 禁止打印输入 | + | |
+ | set +x 禁止调试 | ||
+ | set -v 当命令进行读取时显示输入 | ||
+ | set +v 禁止打印输入 | ||
例1: | 例1: | ||
行 336: | 行 341: | ||
例3: 通过传递环境变量_DEBUG来控制调试信息 | 例3: 通过传递环境变量_DEBUG来控制调试信息 | ||
+ | |||
``` | ``` | ||
#!/bin/sh | #!/bin/sh | ||
行 350: | 行 356: | ||
执行结果: | 执行结果: | ||
+ | |||
``` | ``` | ||
$ ./ | $ ./ | ||
行 365: | 行 372: | ||
- | # ${} # % | + | ## ${} # % |
例: | 例: | ||
行 404: | 行 411: | ||
- | # 提取字符串中指定位置的字符 | + | ## 提取字符串中指定位置的字符 |
`${str: | `${str: | ||
行 418: | 行 425: | ||
``` | ``` | ||
- | # 提取二进制文件中指定offset处的值 | + | ## 提取二进制文件中指定offset处的值 |
例: | 例: | ||
行 438: | 行 445: | ||
option t用于设置dump的格式 | option t用于设置dump的格式 | ||
option 用于设置每行一的地址前缀格式,none表示不显示地址前缀 | option 用于设置每行一的地址前缀格式,none表示不显示地址前缀 | ||
+ | |||
+ | |||
+ | ## catch signal | ||
+ | |||
+ | ``` | ||
+ | catch_signal() | ||
+ | { | ||
+ | echo "catch signal" | ||
+ | } | ||
+ | # when the signal 2 (SIGINT) is received, call catch_signal | ||
+ | trap " | ||
+ | ``` | ||