1
经过几个小时的骚动后,我放弃了。带当前目录的bash前缀输出
我有一个bash功能的长期运行构建脚本,姑且称之为“建”:
function Build() {
cd /plugins
make
cd /acc
make
}
...我想从脚本输出到每行前缀当前目录,如:
/plugins: configure: checking for gcc
/plugins/inner: making inner modules
...
/acc: configure: checking for speed of strstr.
/acc/misc making misc pieces
....等等。脚本中有几十个“cd”,所以我不想改变每一个。尝试各种管道组合awk和陷阱DEBUG,但没有喜悦。
任何想法?
试过了。 cd()函数只捕获脚本中明确存在的cd,而不是makefile中的cd。 – user3734586
试过了。 cd()函数只捕获脚本中明确存在的cd,而不是makefile中的cd。 DEBUG陷阱只回应PWD的值,而不是当前执行pwd的结果。另外,它似乎只在主脚本中捕获命令,而不是任何剥离的makefile。有任何想法吗? – user3734586
您无法在bash脚本中跟踪make过程中的chdirs。但是,您可以尝试设置环境变量MAKEFLAGS = -w,以便make会跟踪它自己的chdirs。 但是如果你真的想跟踪任何进程中的所有'chdir'系统调用,那么我想''strace'或类似的LD_PRELOAD c库的破解是要走的路。 – jil