100줄이 넘는 텍스트 파일이 있는데, 각 줄은쉿주문하다:
echo foo
...
echo bar
나는 ~을 찾고 있다쉿지정된 줄 번호와 관련된 해당 파일에서 명령을 실행하는 터미널에서 명령을 호출할 수 있습니다. 일반적으로 터미널에서 실행되는 명령과 관련된 시스템 관련 내용을 터미널에 표시하는 것을 원하지 않습니다.
예를 들어, 이와 같은 것을 사용하면 xdotool type "$(sed -n 1p file)" &
(더 우아한 명령이 가능하다는 점에 유의하세요)
다음 터미널 출력이 나타납니다.
[1] 9531
user@host:~$ echo foo
이 줄을 억제하고 싶습니다 [1] 9531
.하지만 기억해, 난 그래아니요억제하고 싶다에코 바좋아, 여기에서 다른 명령이 아닌 필요한 명령을 실행하고 싶은지 확인할 기회가 있기 때문입니다. 또한 명령 프롬프트 왼쪽에 어떤 텍스트도 표시되는 것을 원하지 않습니다.
그런 다음 <을 클릭했습니다.입력하다> 내 키보드 키를 사용하여 다음을 얻습니다.
foo
[1]+ Done xdotool type "$(sed -n 1p file)" &
user@host:~$
이 줄을 억제하고 싶습니다 [1]+ Done...
.
이 두 라인의 터미널 출력을 어떻게 억제할 수 있습니까? 내가 찾을 수 있는 모든 리디렉션 방식을 시도했지만 재미가 없었습니다.
답변1
&
단순화하기 위해 백그라운드에서 명령(기호)을 실행할 때 표시되는 일반 출력이 표시됩니다 . 이 단순화된 버전을 실행하면 동일한 결과를 볼 수 있습니다.
ls &
이 출력이 표시되지 않도록 하려면 명령을 괄호로 묶을 수 있습니다.
(ls &)
또는 귀하의 경우
(xdotool type "$(sed -n 1p file)" &)
특별한 경우에는 실제로 필요하지 않은 것 같으 &
므로 명령에서 제거하는 것이 더 쉬울 수 있습니다.
xdotool type "$(sed -n 1p file)"
폴리스티렌
모든 파일을 처음부터 끝까지 순차적으로 실행하려면 다음과 같은 작업을 수행하는 것이 좋습니다.
x=0
그런 다음 각 행에 대해 다음을 실행합니다.
x=$((x+1)); (xdotool type "$(sed -n "${x}p" file)" &)
이렇게 하면 매번 번호를 변경할 필요가 없습니다.
또한 이것을 살펴보십시오: 파일의 모든 명령을 대화식으로 실행하는 방법