bashデバッグオプション?

bashデバッグオプション?

私の考えでは、bashがスクリプトに問題があるエラーメッセージを正確に伝えるのはかなり悪いようです。たとえば、「行953で無効なEOF」というメッセージが頻繁に表示されます。これは何ですか?本物意味行127に1つがありません。fiまたはもう一つの古典は、「-bash:line 60:予期しないトークン」( '」の近くの構文エラーです。これは何ですか?本物つまり、bashエラーが実際の問題のない60行を指すことを除いて、739mything() {}行で私の機能をエイリアスとして再宣言しました(だから739行で犯人を見つけるのに時間がかかりました)。alias mything=

最も人気のある「bashデバッグ」ツールをVS Codeにロードしようとしましたが、うまくいきませんでした。 (F5を押して実行し、「デバッガの選択」というボックスが表示され、bashのデバッグを選択しましたが、何の反応もありませんでした)になりませんでした。私はPowerShellを少し使いましたが、問題の原因を報告するためにはるかに優れた作業を行いました。 bashスクリプトをよりよくデバッグする方法(同じ名前で再宣言された関数やエイリアスなどの問題についてスクリプトをスキャンできるgithubまたはオンラインのツールまたはスクリプト分析ツール)はありますか?

答え1

ドイツ語のシェルスクリプトで、この単純なシェルブレークポイントデバッガを見つけました。。デバッグを開始したい場所に次の2行を追加し、Enterキーを押して段階的に実行するか、実行時に変数と関数を評価できます。

read var    # set simple breakpoint
echo -e "dbg> \c"; read cmd; eval $cmd

スクリプトの実行

$ dbg> doSomethingFunction
$ dbg> echo $SOME_VAR

あるいは、以前はset -xプロンプト変数を使用して変更することが役に立ちました。PS4

PS4='+ ${BASH_SOURCE##*/}.${LINENO} ${FUNCNAME}: '

関連情報