터미널에서 명령을 열고 실행하는 .desktop 파일을 만듭니다. 스크립트를 시작하면

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로 설정되어 있습니다.



답변

데스크탑 파일의 내용은 다음과 같아야합니다 ( 텍스트 편집기를 사용하여 .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되지만 결과는 두 경우 모두 동일합니다.


답변

!#/bin/bash

gnome-terminal -e YOUR_COMMANDS

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


답변

간단히 추가

;$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;


답변

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

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

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

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

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


답변