3

run.shバックグラウンドでbash スクリプトを実行していて、run.sh. とにかくrun.shスクリプトの元の内容を見ることはありますか?

例えば:

echo "echo a1; sleep 120; echo a2" > run.sh; bash run.sh& 
aPid=$!
echo "echo bbbbbb" > run.sh

私は次のようなものを期待しています、cat {magic file/path}そしてそれは印刷されます

echo a1; sleep 120; echo a2

/proc/$aPid をいじっていますが、何も見つかりませんでした。

4

2 に答える 2

2

最初に、ulimit がコア ファイルを許可するように設定されていることを確認します。試す

ulimit -c unlimited

次に、スクリプトを実行します

./run.sh

run.shスクリプトの実行中に、スクリプト ファイルを変更または削除します。

最初のスクリプトps axのプロセス ID (PID) を見つけるために実行します。run.sh次のようなものが表示されるはずです

19365 pts/5    S+     0:00 /bin/bash ./run.sh

それからする

kill -SIGSEGV 19365

次のようなものが表示されるはずです

Segmentation fault (core dumped)

を最初に実行した端末ウィンドウrun.sh

最後に、

strings core

coreファイルに。文字列のどこかに、元のrun.shファイルのテキストが表示されます。

クレジット: この回答は、コンパイル済みの bash スクリプトからプレーン テキスト スクリプトを取得する から改作されました。

于 2013-04-10T19:34:23.353 に答える