~/.local/share/nautilus/scripts/의 노틸러스 스크립트에 터미널 창이나 출력이 표시되지 않습니다.

~/.local/share/nautilus/scripts/의 노틸러스 스크립트에 터미널 창이나 출력이 표시되지 않습니다.

간단한 스크립트를 만들어 ~/.local/share/nautilus/scripts/(게시물 끝에 있는 스크립트)에 넣었습니다.

Nautilus->Scripts->myScript.sh에서 마우스 오른쪽 버튼을 클릭하여 실행할 수 있습니다. 지금까지는 모두 괜찮습니다.

문제는 터미널 창이 표시되지 않거나 출력이 없다는 것입니다. 기다리지 않고 선택한 파일의 경로가 올바르게 채워진 알림-전송 메시지만 받습니다.

"THIS IS TEST!"를 인쇄한 다음 "PLEASE ENTER..."를 인쇄하고 Enter 키 누르기를 기다리는 터미널 창이 있을 것으로 예상합니다. 마지막으로 통지 전송이 수신되어야 합니다.

내가 여기서 무엇을 놓치고 있는 걸까요?

#!/usr/bin/bash

echo "THIS IS TEST!"
read -r -p "PLEASE ENTER TO EXIT! Waiting..."

notify-send "COMPLETED!" "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS} ___ ${NAUTILUS_SCRIPT_SELECTED_URIS} ___ ${NAUTILUS_SCRIPT_CURRENT_URI}"

답변1

터미널 창이 자동으로 생성되지 않습니다. 직접 만들어야합니다. 스크립트를 다음과 같이 수정했습니다.

#!/usr/bin/bash

function commands-to-be-run {
  echo "THIS IS TEST!"
  read -r -p "PLEASE ENTER TO EXIT! Waiting..."
}

export -f commands-to-be-run

gnome-terminal --title="Testing..." --wait -- bash -c commands-to-be-run

notify-send "COMPLETED!" "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS} ___ ${NAUTILUS_SCRIPT_SELECTED_URIS} ___ ${NAUTILUS_SCRIPT_CURRENT_URI}"

나는 귀하의 모든 명령문(터미널 내부에서 실행되는 명령)을bash 기능그리고export자식 프로세스에서 사용할 수 있도록 편집했습니다.

그런 다음 gnome-terminal --title="Testing..."명령을 사용하여 적절한 제목의 터미널 창을 만들었습니다. 이 옵션은 옵션이 완료된 후 실행할 명령이 반환될 때까지 명령이 반환되지 않도록 --wait강제합니다 .gnome-terminal--

다음 내용을 읽어주세요.man gnome-terminal페이지더 많은 옵션을 확인하세요.


필요에 따라 더 짧은 버전은 다음과 같을 수 있습니다.

#!/usr/bin/bash
gnome-terminal --title="Testing..." --wait -- bash -c '
  echo "THIS IS TEST!" ;
  read -r -p "PLEASE ENTER TO EXIT! Waiting..."
'
notify-send "COMPLETED!" "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS} ___ ${NAUTILUS_SCRIPT_SELECTED_URIS} ___ ${NAUTILUS_SCRIPT_CURRENT_URI}"

또한 보세요zenity노틸러스 스크립트에서 입력/출력을 수행하는 추가 옵션에 대한 명령입니다. 다음은 매우 기본적인 예입니다.

#!/bin/bash
echo -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sed -z 's/.$//' | xsel -b -i
zenity --info --no-wrap --no-markup --title="File name(s) copied to Clipboard:" --text="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"

관련 정보