現在のシェルを変更せずにシェルでstraceをどのように実行できますか?

現在のシェルを変更せずにシェルでstraceをどのように実行できますか?

straceプロセスの動作を追跡するために使用しますbash。目的は、bash設定ファイルがロードされる順序を見つけることです。

次のコマンドを実行していますzsh

strace -e openat bash

このコマンドを実行すると、新しいシェルが表示されますが、bashそのようなことが発生したくありません。bash実際に新しいインタラクティブシェルを起動せずにコマンドを追跡する方法はありますかbash

オンラインで検索しましたが、何も見つかりませんでした。exec:を使用しようとしていますが、strace -e openat "$(exec bash)" 2>&1シェルはまだbashfromに変わりますzsh

答え1

bash即時シャットダウンを要求し、強制的に対話型および/またはログインシェルのように機能させることができます。

strace -e openat bash -i -c exit

対話型ログインシェルのように動作-lするように追加されました。bash

終了時に読み取ったファイル(.bash_logoutなど)も表示されます。

関連情報