그놈 터미널을 열고 복합 명령을 실행하는 방법

그놈 터미널을 열고 복합 명령을 실행하는 방법

저는 GNOME 터미널 3.36.2와 함께 Ubuntu 20.04LTS를 사용하고 있습니다. 두 개의 명령을 실행하고 첫 번째 명령이 성공한 경우에만 두 번째 명령을 실행하고 싶습니다.

proc.sh && results.sh

별도의 터미널 창에서 실행하고 싶어서 다음과 같이 말했습니다.

gnome-terminal -e 'proc.sh && results.sh'

이것은 작동합니다. 하지만 -e을 사용해야 한다는 더 이상 사용되지 않는 경고가 표시됩니다 --. 그러나 둘 다 -x(더 이상 사용되지 않음) 및 --모두 동일하며 참조된 텍스트의 전체 내용을 실행 파일 이름으로 해석하므로 "파일을 찾을 수 없습니다" 오류가 발생합니다.

그렇다면 지금 이 작업을 수행하는 올바른 방법은 무엇입니까?

답변1

매뉴얼에 힌트가 있습니다:

--command, -e=COMMAND
이 옵션에 대한 인수를 쉘과 동일한 방식으로 프로그램과 인수로 분할하고 결과 명령줄을 터미널 내에서 실행합니다.

이 옵션은 더 이상 사용되지 않습니다. 대신 --옵션을 종료하고 그 뒤에 실행되는 프로그램과 인수를 넣으십시오. 예를 들어 를 사용하는 대신 gnome-terminal -e "python3 -q"을 사용하는 것을 선호합니다 gnome-terminal -- python3 -q.

쉘을 통해 실행되지 않는다는 점에 유의하십시오 COMMAND. 단어로 분할되어 프로그램으로 실행됩니다.쉘 구문이 필요한 경우 형식을 사용하십시오 gnome-terminal -- sh -c '...'.

(원천, 강조 내)

실행하려는 명령은 &&쉘 구문에 속합니다. 이를 처리하려면 쉘이 필요합니다. 그래서:

gnome-terminal -- sh -c 'proc.sh && results.sh'

관련 정보