假设我在后台运行bash脚本run.sh,然后修改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周围闲逛,但找不到任何东西.
解决方法:
bash似乎试图将当前正在解释的脚本放在文件描述符255上,至少在我的系统上,对文件描述符最大值没有任何活动的非默认约束,等等…这可能无法保证,因此您可能必须玩有点,但是考虑到正在运行的bash / some / script / sh进程的PID,您可以在/ proc /< PID> / fd /中查看文件描述符链接-0、1和2当然是预定义的stdin / stdout / stderr文件,并且可能还有其他文件,具体取决于脚本的功能,但是浏览该目录的内容以找出哪个文件描述符与您的脚本文件相对应并不难,比cat或其他任何东西(例如cat / proc / 12345 / fd / 255)都可以查看原始脚本.