간단한 스크립트를 만들어 ~/.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"