gpt4 book ai didi

bash - 观看流程替换

转载 作者:行者123 更新时间:2023-12-05 04:06:06 25 4
gpt4 key购买 nike

我经常运行命令

squeue -u $USER | tee >(wc -l)

其中 squeueSlurm command查看您正在运行的作业数量。这为我提供了 squeue 的输出,并自动告诉我其中有多少行。

我如何观看这个命令?

watch -n.1 "squeue -u $USER | tee >(wc -l)" 结果

Every 0.1s: squeue -u randoms | tee >(wc -l)                                                                                                                                                                                                                                                                                                        Wed May  9 14:46:36 2018

sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `squeue -u randoms | tee >(wc -l)'

最佳答案

来自 watch 手册页:

Note that command is given to "sh -c" which means that you may need to use extra quoting to get the desired effect.

sh -c 也不支持进程替换,您在这里使用的语法是 >()


幸运的是,您正在做的事情实际上并不需要该语法:

watch -n.1 'out=$(squeue -u "$USER"); echo "$out"; { echo "$out" | wc -l; }'

...或者,如果您真的想要使用您的原始代码,即使性能受到严重损失(每十分之一开始不只是一个而是 两个 新 shell第二 -- 首先是 sh,然后是 bash):

bash_cmd() { squeue -u "$USER" | tee >(wc -l); } # create a function
export -f bash_cmd # export function to the environment
watch -n.1 'bash -c bash_cmd' # call function from bash started from sh started by watch

关于bash - 观看流程替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50262534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com