【发布时间】:2021-09-24 15:09:37
【问题描述】:
我尝试了一些在类似帖子中看到的建议,但我的脚本在完成后没有退出。我必须按 Enter 才能退出。它运行一个名为 foo 的函数,并且运行正常。但是当它完成它的写入 Done $i 其中 i 是最后一项,然后只是空格时,我必须按 Enter 键退出。提前谢谢你。
#!/bin/bash
PATH=/opt/conda/bin:$PATH
export PATH
eval "$(conda shell.bash hook)"
conda activate prokka_env &&
foo () {
local i=$1
prokka $i --outdir ./"${i%.*}" --prefix "${i%.*}"
echo Done $i
}
for i in *.fasta; do foo "$i" & done
【问题讨论】:
-
行尾的
&&有什么作用? -
为什么
&&在conda activate行的末尾? -
您是否有意将每个
foo "$i"实例提交为后台进程? -
因为它在后台运行所有内容,我认为您的脚本在打印任何
Done $i消息之前退出,您认为需要按 Enter 的原因只是提示已经向上滚动当Done $i消息被打印出来时。为了证实这个理论,运行你的脚本,然后尝试输入ls<enter>。如果该命令实际运行,您将知道您的脚本已经正确结束。 -
我已经删除了 && 并且现在再次对其进行测试。是的,我有意将每个 foo $i 实例作为后台进程提交。它们是独立的进程,希望加快处理时间