터미널에서 쉘 스크립트가 실행되지 않습니다

터미널에서 쉘 스크립트가 실행되지 않습니다

scriptA.sh데스크탑에서 를 생성 하고 실행 가능하게 만든 다음 내용은 다음과 같습니다.

#!/bin/bash
sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'

이것을 두 번 클릭하여 터미널을 열고 두 명령을 실행하고 터미널을 열어두고 싶습니다. 그러나 실제로 두 번 클릭하고 run with terminal옵션을 선택한 후에 터미널이 잠시 열렸다가 자동으로 닫히는 현상이 발생합니다. 왜 이런 일이 일어나는지 모르겠습니다. 혹시 왜 이런 일이 발생하는지, 그리고 어떻게 극복할 수 있는지 조언해 주시면 감사하겠습니다.

답변1

gksudo데스크탑에서 시작하려는 경우 사용하고 싶을 것입니다 . 그러면 비밀번호를 묻는 창이 열립니다.

#!/bin/bash
gksudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'

또한 디버깅하려면 먼저 터미널에서 해당 스크립트를 실행하는 것이 좋습니다. 이렇게 하면 일부 오류 메시지를 인쇄한 직후에 닫히지 않습니다.


업데이트

이를 수행하는 한 가지 방법은 다음과 같이 파일을 만드는 것입니다.

/home/user_name/.gnome2/panel2.d/default/launchers/script_name.desktop

그런 다음 다음과 같이 넣으십시오.

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=gdu-category-peripheral
Name[en_US]=Receiving fax
Exec=gksu /usr/bin/gnome-terminal
Comment[en_US]=Some description...
Name=My Script
Comment=Start my script
Icon=gnome-panel-launcher

그것은 일반적으로 나에게 효과적입니다. gnome-terminal은 매개변수를 허용하므로 다양한 설정을 변경할 수 있습니다.

--working-directory=...명령 대신 사용하십시오 cd .... 특정 변수를 얻으려면 아마도 옵션을 사용하고 싶을 것입니다 --profile=....

Exec=gksu -u userA /usr/bin/gnome-terminal --profile=/home/userA/profile --working-directory=/home/userA/scripts

그런 다음 변수에 대한 프로필 스크립트를 만듭니다.

# In /home/userA/profile
PACKAGE_PATH=/home/userA/package1

분명히 다른 별칭이나 프로필 스크립트에 필요한 다른 것을 추가할 수 있습니다.

답변2

기본적으로 "터미널 창에서 실행" 옵션을 선택하면 (gnome-) 터미널 창이 완료된 후 닫힙니다. 그것하다열려요, 잠깐만 열린다고 말씀하셨으니까요. 넌 할 수있어머무르다터미널 프로필에서 설정을 변경하여 엽니다.

(gnome-terminal) 메뉴에서 "편집" > "프로필 설정" > "제목 및 명령"을 선택합니다. "명령이 종료될 때" 옵션에서 "터미널 열린 상태 유지"를 선택합니다.

그러면 효과가 있을 것입니다.

여기에 이미지 설명을 입력하세요

관련 정보