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)

관련 정보