我有一个 shell 脚本test.sh
。
在其中,我尝试执行另一个 shell 脚本abc.sh
。abc.sh
执行时,它会接受选项 a、b、c 之一。如果我选择“a”并按下enter,它会创建一个临时文件并打开它,如果我输入“q”,它会退出屏幕并删除临时文件。
但是当我调用时test.sh
,它会调用abc.sh
并打开临时文件。
我想将临时文件复制到由创建的主目录abc.sh
,q按以便退出脚本并继续test.sh
。
限制是我不允许修改 abc.sh。
abc.sh 具有创建临时文件的逻辑,完成后,即如果我按下“q”键并退出脚本,它也会删除临时文件。
在大家的帮助下,我现在可以使用以下命令将内容复制到主目录:
touch /tmp/reference_file; { echo a; sleep 1; find /tmp -newer /tmp/reference_file -exec cp "{}" ~ \; 2> >(grep -v 'Permission denied' >&2); echo q; } | ./abc.sh; rm /tmp/reference_file;
但是这个命令在我执行test.sh的地方创建了一个垃圾文件,如下所示:
-rw-rw-r-- 1 xxxx xxxxx 310 Aug 20 11:04 ▒
有人能帮我删除它吗?或者我的上述命令是否有问题?