Linux bash 스크립트 - 명령 그룹화

Linux bash 스크립트 - 명령 그룹화

저는 bash 스크립팅을 처음 접했고 명령 집계에 대한 질문이 있습니다. 다음 코드 줄에 있습니다.

timeout -s 9 1 echo $var | nc localhost port

netcat을 통해 특정 포트의 localhost에 변수 var의 데이터를 보내려고 하는데 명령 시간을 1초 초과하고 싶습니다. 시간 초과에 대한 매뉴얼 페이지를 읽으면 다음과 같이 사용해야 한다는 것을 이해합니다.

timeout -s SIGNAL TIME COMMAND

내 질문은 COMMAND nc localhost 포트를 파이프된 명령 echo $var |로 바꾸고 다음 사례를 올바르게 작성하는 방법을 더 이해하는 방법입니다.

COMMAND1 | (COMMAND2 | COMMAND3)

그리고

(COMMAND1 | COMMAND2) | COMMAND3

내가 맞다면 두 번째 예는 다음과 같습니다.

COMMAND1 | COMMAND2 | COMMAND3

그런데 첫 번째 글을 어떻게 쓰는지 모르겠어요.

답변1

대신 COMMAND가 timeout해석됩니다. 서브셸(및 bash그 안에 파이프 명령)을 배치할 수 없습니다 .()

명령을 쉘 스크립트에 넣고 해당 이름을 timeout.

또는 실제로 COMMAND를 로 강제 bash실행하면 됩니다.

timeout -s 9 1 bash -c "echo $var | nc localhost port"

관련 정보