以下命令将在~/PDF/下创建一个pdf文件:
enscript -B -P PDF bloom.c我想把输出pdf文件移到这里
mv "`ls -dtr1 ~/PDF/* | tail -1`" .但是,我无法运行mv命令,不能完全按照enscript命令运行,因为enscript将输入文件发送到打印机PDF,并在打印机完成创建pdf文件之前立即返回。
一个非常糟糕的解决方案是在这两个命令之间插入以下命令
sleep 5这很糟糕,因为我不知道我要等多久。
请注意,我知道还有其他更好的方法来完成相同的任务,而不必在mv之后运行enscript命令,但是我只是想知道是否有任何方法在打印机完成任务之前使enscript块成为块呢?我记得除了enscript之外,我对其他命令也有类似的想法。我假设enscript没有提供这样的选项,所以会对bash或其他程序是否能实现这一点感兴趣。信号处理可能是一个解决方案,但我不知道要捕捉哪个信号。
发布于 2018-09-29 14:57:38
由于这个文件太大,无法放在注释中,所以您是否尝试过使用~/PDF (LiSt open )检查当它们开始卷曲时目录中的任何文件是否仍然是打开的?
在enscript -B -P PDF bloom.c之后添加以下代码片段:
# Go into endless loop and break when all files in */PDF/* are closed.
while :
do
if ! [[ `lsof | grep /PDF/` ]]
then
break
fi
sleep 1
done而在
mv "`ls -dtr1 ~/PDF/* | tail -1`"这样你只会损失1秒..。
欲了解更多信息:
lsof将列出所有当前打开的文件man lsof会给你更多的细节。;-)
https://unix.stackexchange.com/questions/470390
复制相似问题