インクルードを含むbashスクリプトのソースコードを表示/表示/印刷する方法はありますか(別名「ソース」) “)?
例:
sub.shファイル
function showMe(){ echo "INCLUDE" }
main.shファイル
#!/bin/bash source sub.sh showMe echo "OK"
main.shの「印刷」には次のように表示されます。
#!/bin/bash showMe(){ echo "INCLUDE" } showMe echo "OK"
コメント
回答
:
awk "/^source/ { while (getline l <$2 > 0) print l; close($2); next; } { print; }" main.sh
したがって、source fname
で始まる各行は次の内容に置き換える必要があります。存在する場合はファイル。
回答
perl -p0e "while(s/source\s+(\S+)/`cat $1`/e){}" foo.sh
コメント
- うまく機能しますが、' perlを使用できません。ちなみに、ありがとうございます。
- put iv id = ”
foo.sh
の5a1b1fce31 “>
を実行すると、無限ループが発生します:)
回答
スクリプトの実行も気にしない場合は、次の簡単な方法があります。ソースコードとそのインクルードが表示されている:
bash -v foo.sh
コメント
- このコマンドは、スクリプト、ソースのみが必要です、ありがとうございます。
more/less/cat
で確認できます。実行時には、-xフラグを使用できます(例:set -x
)。印刷ソースコードとインクルードファイルを静的に印刷するような魔法はありません。 C言語のcpp
に相当するものはありません。