デバッグモードを有効にしたいファイルを自動的に指定したいと思います。
# 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つは、数値を各ファイルに関連付けて「ソースコマンド」の前後に適用し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
。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
グローバル変数を生成する必要があります。)