我想自动指定我想要启用调试模式的文件。
# Define files needing debugging
files_to_debug=(
"${trkrc}/navaid.rc"
"${trkrc}/buranex.rc"
)
# Enable debugging for specific file sources
for file in "${files_to_debug[@]}"; do
set -xv
source "$file"
set +xv
done
# Continue sourcing other files without debugging
source "${trkrc}/marinex.rc"
source "${trkrc}/firefly.rc"
source "${trkrc}/comseq.rc"
source "${trkrc}/comint.rc"
但我想按特定顺序获取我的文件。
source "${trkrc}/marinex.rc"
source "${trkrc}/firefly.rc"
source "${trkrc}/navaid.rc"
source "${trkrc}/buranex.rc"
source "${trkrc}/comseq.rc"
source "${trkrc}/comint.rc"
一个可能有很好机会的可能性是与每个文件关联一个数值,用于在“源命令”之前和之后1
应用,并且仅在遇到时进行采购。set -xv
set +xv
0
该脚本可以生成以下debug-config
文件
0 marinex.rc
0 firefly.rc
0 navaid.rc
0 buranex.rc
0 comseq.rc
0 comint.rc
然后,用户可以将那些想要调试的文件的值从 更改0
为。1
我将非常感谢您在实施这件事方面提供的帮助。
答案1
你可以制作类似的函数
d() { set -xv; }
nd() { set +xv; }
然后在每个之前调用d
or :nd
source
nd; source "${trkrc}/marinex.rc"
nd; source "${trkrc}/firefly.rc"
d; source "${trkrc}/navaid.rc"
d; source "${trkrc}/buranex.rc"
nd; source "${trkrc}/comseq.rc"
nd; source "${trkrc}/comint.rc"
nd
这并不完全是您在数组中所拥有的,但避免了重复文件名。
当然你也可以制作组合函数:
dsource() {
set -xv
source "$1"
set +xv
}
但是从函数内部获取可能会改变源代码的含义。 (至少declare
会在函数内创建局部变量,并且需要更改为declare -g
创建全局变量。)