터미널에서 명령을 열고 실행하는 .desktop 파일을 만듭니다.


39

Exec새 터미널을 열고 셸 스크립트를 실행하기 위해 .desktop 파일 의 명령 을 작성하는 방법을 알고 싶습니다 . 쉘 스크립트가 작동하고 모든 사용자가 액세스 할 수 있습니다. 터미널에서 스크립트를 시작하면 모든 것이 작동하지만 .desktop 파일에서 스크립트를 시작하려고 시도하는 것은 아닙니다.

내가 이미 시도한 몇 가지 조합은 다음과 같습니다.

Exec=gnome-terminal -x sh -c 'echo hello'
Exec=sh -c 'gnome-terminal echo hello'
Exec=sh -c 'echo hello'
Exec=echo hello

.desktop 터미널 옵션이 true로 설정되어 있습니다.

답변:


46

데스크탑 파일의 내용은 다음과 같아야합니다 ( 텍스트 편집기를 사용하여 .desktop 파일을 작성하는 방법 참조 ).

[Desktop Entry]
Version=1.0
Name=Test        
Comment=Test the terminal running a command inside it
Exec=gnome-terminal -e "bash -c 'echo hello;$SHELL'"
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=Application;

또는:

[Desktop Entry]
Version=1.0
Name=Test        
Comment=Test the terminal running a command inside it
Exec=bash -c 'echo hello;$SHELL'
Icon=utilities-terminal
Terminal=true 
Type=Application
Categories=Application;

첫 번째 경우에는 Terminal필드가 false(아마도 기대치와 반대)로 설정되고 두 번째 경우는로 설정 true되지만 결과는 두 경우 모두 동일합니다.


1
첫 번째 해결책은 나를 위해 작동하므로 그 점을 고수합니다. 왜 $ SHELL이 있어야하는지 아십니까?
Paradiesstaub

1
@Thibaut 물론 입니다.
Radu Rădeanu

그것은 나를 위해 일했지만 sudo로 명령을 시작하고 런처를 사용할 때 password asking-me 터미널을 엽니 다. 명령을 실행하고이 동작을 방지하는 방법
E_Angel

1
@EliasAlves 조금 늦었지만이 글을 읽는 사람은 자신을 인증 할 필요없이 루트 권한이 필요한 명령을 실행할 수 없습니다. (시스템을 명시 적으로 구성하지 않는 한, 이는 일반적으로 나쁜 생각입니다.)
code_dredd

질문은 : 터미널이 사라지지 않도록 자격 증명을 입력 할 수 있도록 터미널이 나타나는지 확인하는 방법
RockScience

2
!#/bin/bash

gnome-terminal -e YOUR_COMMANDS

위 파일을 작성하십시오. 잊지 마세요sudo chmod +x filename.sh


1
이 솔루션의 문제점은 터미널이 즉시 사라지고 사용자가 무언가를 입력 할 수 없다는 것입니다.
Paradiesstaub

나는 그것이 무엇인지 잊었지만 터미널을 유지하는 옵션이 있다고 생각합니다. 아마hold
Mr.Lee

2

간단히 추가

;$SHELL 

당신의 명령의 끝에서.

나처럼 snapd거의 밤에 일할 때마다 스냅을 새로 고치기 위해 시스템의 전체 대역폭을 사용하는 것이 아닙니다.

그래서 이것은 .sh파일에 연결된 파일 을 만드는 데 효과적이었습니다 .desktop. 파일
내용 .sh

echo <your password> | sudo -S systemctl stop snapd.service
sudo systemctl disable snapd.service;$SHELL

-S.sh파일 의 첫 번째 줄은 암호를 입력하지 않고 직접 실행을 의미 STDINPUT하는 sudo명령 으로 보내는 데 사용됩니다 .

.desktop파일 내용 은 다음과 같습니다.

[Desktop Entry]
Version=1.0
Name=Test
Comment=Test the terminal running a command inside it
Exec=gnome-terminal -e "/scripts/disable_snap.sh"
Icon=terminal
Terminal=true
Type=Application
Categories=Application;

0

나는 이것을한다. 텍스트 파일의 첫 줄은! # / bin / bash입니다.

텍스트 파일의 후속 행은 명령 (쉘 스크립트)입니다.

파일을 something.sh로 저장하십시오

파일의 속성을 열고 프로그램으로 실행 파일을 활성화하십시오.

이제 파일을 두 번 클릭하면 파일을 실행할 수있는 옵션이 나타납니다.


2
여기서도 터미널은 즉시 사라집니다.
Paradiesstaub

그것은 나에게 아무런 문제가 없다. 쉘 스크립트를 작성하고! # / bin / bash 행을 첫 번째 행으로 추가하십시오. 파일을 실행 파일로 실행하십시오. 두 번 클릭하고 터미널에서 실행을 선택하십시오. 그냥 작동합니다.
hatterman

1
쉘 스크립트가 완료 되었기 때문에 터미널이 닫히지 않았습니까? 스크립트의 시작 부분에서 절전 모드를 30으로 설정하면 터미널이 30 초 동안 열려 있습니까?
hatterman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.