我认为生成临时文件可能会更慢,如果用户按ctrl+c,临时文件将变为垃圾.
这是我的原始代码
for f in bin/* ; do
ldd $f 2>/dev/null | awk '{print $1}'
done | sort -u | grep -v -e '^not$' -e 'ld-linux' > list.1
while read soname ; do
process_so_name $soname
done < list.1
Run Code Online (Sandbox Code Playgroud)
是否可以删除临时文件列表.
只是没有临时文件.将最后一个grep的结果输入while.
你可以挂钩到SIGINT来检测Ctrl + C,但为什么不担心呢?你仍然无法挂钩到SIGKILL.
for f in bin/* ; do
ldd $f 2>/dev/null | awk '{print $1}'
done | sort -u | grep -v -e '^not$' -e 'ld-linux' | while read soname ; do
process_so_name $soname
done
Run Code Online (Sandbox Code Playgroud)
要挂钩到SIGINT,请执行以下操作:
trap "echo SIGINT; rm -f tempfile; exit -1" INT
Run Code Online (Sandbox Code Playgroud)
要挂钩到SIGTERM(请参阅下面的评论),请执行以下操作:
trap "echo SIGINT; rm -f tempfile; exit -1" EXIT
Run Code Online (Sandbox Code Playgroud)