Linux Bash 스크립트를 두 번 클릭하고 Pause 명령을 사용하여 디버깅합니다.

Linux Bash 스크립트를 두 번 클릭하고 Pause 명령을 사용하여 디버깅합니다.

저는 Windows .bat 스크립트 작업에 능숙하며 스크립트를 개발할 때 일반적으로 일시 중지 명령을 사용하여 스크립트가 명령 프롬프트에서 실행되는 동안 내용을 단계별로 살펴볼 수 있습니다. Linux Bash 파일로 비슷한 작업을 수행하려고 합니다. 아래와 같이 매우 간단한 bash가 있습니다 ...

#!/bin/bash
echo Hello World!
read -p "Press [Enter] key to continue..."

"실행 파일을 두 번 클릭하면 실행"되도록 Nautilus(Linux 파일 관리 프로그램)를 구성했지만 스크립트를 두 번 클릭해도 아무것도 표시되지 않습니다. 출력을 콘솔 등으로 다시 라우팅해야 합니까?

편집하다

내가 원하는 것을 달성하는 방법은 다음과 같습니다.

  1. .sh 파일을 생성합니다. (저는 위의 파일을 사용했습니다.)
  2. 노틸러스 열기
  3. 편집->기본 설정->동작 탭을 클릭합니다.
  4. "실행 가능한 텍스트 파일"에서 "매번 묻기" 라디오 버튼을 선택하세요.

이제 .sh 파일을 클릭하면 몇 가지 옵션이 표시됩니다. "터미널에서 실행" 옵션이 바로 제가 원하는 것입니다. 귀하의 기여에 감사드립니다!

답변1

터미널을 시작해야 스크립트가 시작됩니다.

이 시도:

#!/bin/sh
xterm -e "echo Hello World; read -p 'Press [Enter] key to exit ..."

물론 이것은 더 긴 스크립트에는 실용적이지 않습니다. 하지만 그러면 간단하게 다음과 같이 할 수 있습니다.

#!/bin/sh
xterm -e /home/user/scripts/thescript.sh

thescript.sh사용하려는 모든 명령을 포함하십시오 . 실행 가능한지 확인하십시오( chmod +x thescript.sh).

답변2

스크립트와 상호 작용하려면 터미널이 필요합니다. 이를 수행하는 한 가지 방법은 @Sebastian입니다.제안. 그러나 bash 스크립트는 실제로 이런 방식으로 실행되도록 설계되지 않았습니다. 더 깔끔한 접근 방식은 .desktop스크립트를 시작하는 파일을 작성한 다음 두 번 클릭하는 것입니다.저것. 그것은 다음과 같습니다:

[Desktop Entry]
Exec=/home/user/yourscript.sh
Terminal=true
Type=Application

이 파일을 폴더 foo.desktop에 저장하세요 ~/Desktop. 이제 아이콘으로 표시됩니다. 아이콘을 두 번 클릭하면 스크립트가 터미널에서 실행됩니다. 분명히 /home/user/yourscript.sh스크립트의 실제 경로로 변경해야 합니다 .

관련 정보