새 터미널을 열고 명령을 입력하는 데 사용하고 싶은 스크립트가 있습니다. 이와 같은 명령
gnome-terminal
새 터미널을 엽니다.
또한 내가 그렇게 한다면
gnome-terminal -e myprogram1
새로 열린 터미널에서 myprogram1이 실행됩니다. 하지만 myprogram1이 완료된 후에 myprogram2를 실행하려면 어떻게 해야 합니까? 나는 같은 것을 할 수 없습니다
gnome-terminal -e myprogram2
새로운 터미널이 열릴 것이기 때문입니다.
동일한 새 터미널에서 둘 다 실행하려는 스크립트를 지정하는 방법이 있습니까 myprogram1
? myprogram 2
아니면 새 스크립트를 만들고 다음과 같은 작업을 수행해야 합니까?
gnome-terminal -e scriptToExecuteMyPrograms1And2
답변1
다음과 같이 원하는 것을 달성할 수 있습니다.
$ gnome-terminal -e "bash -c '<cmd1>;<cmd2>;exec $SHELL'"
이것이 열리고 <cmd1>
, 완료되면 열리고 <cmd2>
, 마지막으로 명령 프롬프트로 이동하게 됩니다 exec $SHELL
.
예를 들어:
$ gnome-terminal -e "bash -c 'vim;vim;exec $SHELL'"
running 을 실행 vim
하고 첫 번째 항목을 닫으면 vim
두 번째 항목이 시작됩니다. vim
두 번째 항목이 닫히면 터미널 프롬프트가 표시됩니다.
답변2
노력하다 gnome-terminal -e "myprogram1; myprogram2"
. &&
대신 을 사용해 볼 수도 있습니다 ;
.
답변3
터미널을 시작한 후 많은 명령을 실행하려는 경우 더 나은 접근 방식은 함수를 작성하고 해당 함수를 내보내고 해당 함수를 호출하는 것입니다. 애플리케이션에 맞게 아래 제공된 것과 유사한 쉘 스크립트를 작성하십시오.
my_function(){
command1
command2
.
.
.
commandn
}
export -f my_function
$(x-terminal-emulator -e "bash -c 'my_function'")
여러 기능을 가질 수도 있습니다. 그러나 그러면 main처럼 동작하는 다른 함수, 즉 다른 모든 함수를 호출하는 함수를 작성해야 합니다. 따라서 이 주요 기능을 실행하도록 터미널을 설정하면 나머지는 알아서 처리됩니다.
답변4
프로그램을 ~/.bashrc
파일에 넣을 수 있습니다
이는 다음에 적용됩니다.세게 때리다쉘(사용하는 경우). tty 또는 gnome-terminal을 통해 터미널을 열 때마다 실행됩니다.
기본적으로 파일 끝에 실행하려는 프로그램을 추가하기만 하면 됩니다.