如何将进程 ID 打印到语句中

如何将进程 ID 打印到语句中

我分配了一个工作来将所有流程都处理成一个语句。所以我尝试了这个脚本。

#!/bin/bash
a= ps | awk '{print $1}'
echo select $a

所以我得到了这个输出

PID
1838
1839
1840
13226
select 

我知道a变量需要许多参数并且无法插入其中一个,但我无法获取逻辑。

我想要类似这样的输出。

select 1838, 1839, 1840, 13226

提前致谢。

答案1

更新答案

使用反引号 `` 或$( )来包装将输出保存为变量的命令。

尾部 +2 显示除第一行之外的所有内容。

Awk 在值之间添加逗号和空格

Sed 删除行尾的逗号空格。

#!/bin/bash
a=$(ps | tail +2 | awk '{printf ("%s, ",$1)}' | sed "s/, $//")
echo select $a

输出

$ ./printpid.sh
select 2293836, 3276802, 6422606, 6750318, 7667882, 7798894, 8716412

相关内容