스크립트 실행 후 그놈 터미널 닫기를 피합니까?
여러 그놈 터미널을 열고 ssh를 통해 교실 컴퓨터에 연결하고 스크립트를 실행하는 bash 스크립트를 만들었습니다.
스크립트가 완료된 후 그놈 터미널이 닫히지 않도록하려면 어떻게해야합니까? 또한 터미널에 추가 명령을 입력 할 수 있기를 원합니다.
다음은 내 코드의 예입니다.
gnome-terminal -e "ssh root@<ip> cd /tmp && ls"
gnome-terminal이 열리기를 원한다는 것을 이해하고 몇 가지 명령을 실행 한 다음 프롬프트로 내려가 더 많은 명령을 입력 할 수 있습니다. Gnome-terminal은이 사용 사례를 위해 설계되지 않았지만 해결 방법이 있습니다.
gnome-terminal에서 bash를 실행하고 bash에게 명령을 실행 한 다음 bash를 실행하도록 지시하십시오.
$ gnome-terminal -e "bash -c \"echo foo; echo bar; exec bash\""
exec bash
때문에 말은 필요 bash -c
명령이 완료되면 종료됩니다. exec
실행중인 프로세스가 새 프로세스로 대체됩니다. 그렇지 않으면 두 개의 bash 프로세스가 실행됩니다.
gnome-terminal이 rcfile
명령을 실행 하는 준비된 상태로 bash 를 실행하게하십시오.
준비 somercfile
:
source ~/.bashrc
echo foo
echo bar
그런 다음 다음을 실행하십시오.
$ gnome-terminal -e "bash --rcfile somercfile"
gnome-terminal이 명령을 실행하는 스크립트를 실행 한 다음 bash에 드롭하게하십시오.
준비 scripttobash
:
#!/bin/sh
echo foo
echo bar
exec bash
이 파일을 실행 파일로 설정하십시오.
그런 다음 다음을 실행하십시오.
$ gnome-terminal -e "./scripttobash"
또는 다음을 만들 수 있습니다 genericscripttobash
.
#!/bin/sh
for command in "$@"; do
$command
done
exec bash
그런 다음 다음을 실행하십시오.
$ gnome-terminal -e "./genericscripttobash \"echo foo\" \"echo bar\""
모든 방법에는 단점이 있습니다. 선택해야하지만 현명하게 선택해야합니다. 나는 그 장황함과 직설성에 대한 첫 번째 솔루션을 좋아합니다.
즉, 이것은 당신에게 유용 할 것입니다 : http://www.linux.com/archive/feature/151340
마지막으로 이것은 나를 위해 작동합니다.
gnome-terminal --working-directory=WORK_DIR -x bash -c "COMMAND; bash"
스택 오버플로 답변 : 터미널 내부에서 실행 된 명령이 완료되면 터미널이 닫히므로 즉시 종료되지 않는 명령을 작성해야합니다. 예를 들어, 터미널 창을 누를 때까지 열어 두려면 Enter:
gnome-terminal -e "ssh host 'cd /tmp && ls'; read line"
수퍼 유저 답변 : "제목 및 명령 / 명령 종료시"기본 설정이 "터미널 열기 유지"로 설정된 프로필을 만듭니다.
--window-with-profile
또는--tab-with-profile
옵션으로 gnome-terminal을 호출 하여 터미널 이름을 지정하십시오.
-ic
대신 실행 -i
하여 터미널 GUI를 닫을 때 터미널 닫기 bash 프로세스를 만듭니다.
gnome-terminal -e "bash -ic \"echo foo; echo bar; exec bash\""
이상적인 솔루션은 " Press any key " 에코를 사용하여 사용자 입력을 요청하는 것 입니다.
그러나 Nautis 또는 Nemo를 두 번 클릭하고 터미널에서 실행을 선택하면 작동하지 않는 것 같습니다.
In case of Ubuntu a shell designed for fast start-up and execution with only standard features is used, named dash I believe. Because of this the shebang is the very first line to start with to enable proper use of bash features. Normally this would be: #!/bin/bash or similar. In Ubuntu I learned this should be: #!/usr/bin/env bash.
Many workarounds exist to keep hold of the screen before the interpreter sees a syntax error in a bash command.
The solution in Ubuntu that worked for me:
#!/usr/bin/env bash
your code
echo Press a key...
read -n1
If running a bash script just add gedit afile
to the end of the script and that will hold gnome-terminal open. "afile" could be a build log which it was in my case.
Did not try just using gedit
alone but, that would properly work too.
Use nohup command.
nohup gnome-terminal -e "ssh root@ cd /tmp && ls"
Hope this will help you.
참고URL : https://stackoverflow.com/questions/3512055/avoid-gnome-terminal-close-after-script-execution
'programing' 카테고리의 다른 글
허용 오차가있는 문자열 비교 (0) | 2020.12.08 |
---|---|
log4j를 콘솔에 쓰는 방법 (0) | 2020.12.08 |
최종 방법 조롱 (0) | 2020.12.08 |
확인란이 선택되어 있는지 어떻게 확인합니까? (0) | 2020.12.08 |
Java를 사용하여 PDF 파일을 읽는 방법은 무엇입니까? (0) | 2020.12.08 |