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로 저장하십시오
파일의 속성을 열고 프로그램으로 실행 파일을 활성화하십시오.
이제 파일을 두 번 클릭하면 파일을 실행할 수있는 옵션이 나타납니다.