将 zypper ps -sss 的输出通过管道传输到 systemctl restart

将 zypper ps -sss 的输出通过管道传输到 systemctl restart

我不想在zypper up.相反,我想使用已删除的文件重新启动所有服务,如所示zypper ps -sss

我以为我可以做类似的事情zypper ps -sss | tr '\n' ' ' | systemctl restart,但失败了

论据太少。

我还尝试写入文件并将其用作输入,systemctl restart < myfile.txt得到相同的结果。

我最终使用了

systemctl restart $(zypper ps -sss | tr '\n' ' ')

那么两个问题:

1) 如何将值通过管道传输到 systemctl 中?

2)是否有更好的方法来重新启动 所示的所有服务zypper ps

答案1

1)如何将值输入systemctl

你不能,systemctl restart将单位名称作为参数,而不是来自标准输入。这没有什么问题,因为您有方便的方法来收集单元名称并将它们作为参数(即$(...))传递,而不是通过管道传递。

2)是否有更好的方法来重新启动 所示的所有服务zypper ps

并不真地。好吧,有一个小小的改进,您实际上并不需要该tr命令,因为使用不带引号的命令$(...)将为您提供多个参数,并使用任何空格作为分隔符。所以这应该足够了:

systemctl restart $(zypper ps -sss)

相关内容