这个 txt 脚本文件的“cat”命令是如何工作的?

这个 txt 脚本文件的“cat”命令是如何工作的?

假设我们有一个 txt 文件file.txt,每一行都是一个 python 脚本,例如 python a1.py python a2.py python a3.py

下面的命令到底在做什么?

cat file.txt | xargs -n 1 -P $NUM_CPUS bash -c

答案1

说明:

cat file.txt | xargs -n 1 -P $NUM_CPUS bash -c
  • cat file.txtfile.txt- 连接传递到管道中下一个程序的文件内容

  • xargs -n 1- 一次接受来自 STDIN(前一个命令输出)的 1 个参数

  • -P $NUM_CPUS$NUM_CPUS-一次运行多个进程(每个进程调用一个输入行)

  • bash -c- 使用当前参数执行的命令

答案2

假设$NUM_CPUS包含一个整数,那么该命令最多将启动多个并行非交互式bashshell(就是这样-P做的)。每个 shell 都会运行输入文件中的一行(由于-n 1)。

cat不需要该命令:

xargs -n 1 -P "$NUM_CPUS" bash -c <file.txt

相关内容