我从教科书中看到了这段代码;这本书只说这1,/^[ ]*$/d
意味着“从第 1 行删除,直到第一个空行”。每个字符的具体含义是什么?
ed $1 << EOF
1,/^[ ]*$/d
w
q
EOF
Run Code Online (Sandbox Code Playgroud) 如果调用命令help declare. 您将看到以下信息:
-t NAME : to make NAMEs have the `trace' attribute
Run Code Online (Sandbox Code Playgroud)
是否有任何示例演示此选项的使用。我认为这与命令的作用相同,set -o functrace只是它仅适用于参数而不是所有函数。
这个问题的动机是我想要一个函数 foo 继承一个陷阱。所以我试过了,declare -t foo但没有用。
我当然可以使用set -o functrace让所有函数都继承一个陷阱,但有些情况下我只希望一两个函数继承一个陷阱。
这是脚本:
function foo {
var=1
var=2
var=3
}
declare -t foo
var=0
trap 'echo var is $var' DEBUG
foo
trap - DEBUG # turn off the DEBUG trap
Run Code Online (Sandbox Code Playgroud)
这是脚本的输出:
var is 0
var is 3
Run Code Online (Sandbox Code Playgroud)
我期待得到类似的东西:
var is 0
var is 1
var is 2
var is 3
Run Code Online (Sandbox Code Playgroud)