set -x、set +x 执行命令时打印命令及其参数,是shell脚本中使用echo输出命令的替代方案,可以方便的控制命令是否回显。 初始化位置参数 调用set 是接一个或多个参数时,set 会把参数的值赋予位置参数,从 $1 开始赋值。如下例子: $ catset-it.sh #!/bin/bashsetfirst second third echo $3$2$1$ ./set-it...
set -u: 遇到未定义变量或方法时,停止运行 set -x: 在每条命令执行前,输出命令原文 参数说明 可选参数及其说明如下: 重点参数 最常用的两个参数就是 -e 与 -x ,一般写在 shell 代码逻辑之前,这两个组合在一起用,可以在 debug 的时候替你节省许多时间 。另外 -u 也是比较常用的选项。 set -x 会在执行...
set -o nounset 三、set -x 默认情况下,脚本执行后,屏幕只显示运行结果,没有其他内容。如果多个命令连续执行,它们的运行结果就会连续输出。有时会分不清,某一段内容是什么命令产生的。 set -x用来在运行结果之前,先输出执行的那一行命令。 #!/usr/bin/env bash set -x echo bar 执行上面的...
1. **set -e**:若脚本中任何命令执行失败(非零返回值),则整个脚本终止执行,无需继续执行后续命令。2. **set -x**:启用命令行调试模式,每次执行命令前会输出详细信息,便于追踪脚本执行过程。3. **set -u**:设置未定义变量的错误行为,一旦尝试使用未声明的变量,脚本将立即终止执行。4....
xtrace off 使用-o设置 flag # 比如命令行历史,set -o 查看状态变为on set -o history 使用+o取消设置 flag # 比如命令行历史,set -o 查看状态变为off set +o history set -v 显示shell 所读取的输入值,再显示输出 $ set -v $ ls ls
这里先执行set -x命令打开调试开关。 然后执行ls test*命令,可以看到扩展后的命令为ls --color=auto testfile testcase.sh。 从扩展后的结果可以看到test*被扩展为当前目录下以 "test" 开头的文件名,有助于理解*通配符的扩展结果。 可以使用类似于下面的语句在 shell 脚本中设置该选项: ...
xtrace 为调试打开echo模式,执行命令后,会先显示该命令及所带的参数,再显示命令执行的结果 4 实例 4.1 set:不带任何参数,会显示所有的环境变量和 Shell 函数。 cs @ edu ~ $ set BASH=/usr/bin/bash BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive...
XTRACE 同-x选项,如果没有给出选项名,显示当前选项值 -p 打开特权模式(在此模式,$ENV文件被处理,不能从环境中继承 shell函数.如果是有效用户ID而不是实用户组则自动启动.关闭此选项将使得有效用户和组IDs设置实用户和组IDs) -t 在读取命令并执行之后退出 ...
set[--abefhkmnptuvxBCEHPT][-o option-name][arg ...]set[+abefhkmnptuvxBCEHPT][+o option-name][arg ...] set通过选项来开关shell的不同特性,每个特性都对应一个选项。每个特性都有两种配置方式: 一种是通过set -e和set +e这种形式,即直接指定选项。
设置变量生效范围:通过set命令设置的变量默认只在当前shell会话中有效。如果需要将变量传递给子进程或其他脚本,可以使用export命令将其导出为环境变量,或使用-x选项设置变量的导出属性。 只读属性的限制:通过set -r命令将变量设置为只读属性后,将无法修改该变量的值。因此,在设置只读属性之前,请确保变量的值已经被正确...