Criei um script simples e coloquei em ~/.local/share/nautilus/scripts/ (script no final do post).
Consigo rodar com o botão direito em Nautilus->Scripts->myScript.sh, tudo bem até agora.
O problema é que não há nenhuma janela de terminal apresentada ou qualquer saída. Recebo apenas aquela mensagem de notificação de envio preenchida corretamente com o caminho para o arquivo selecionado, sem qualquer espera.
Eu esperaria que houvesse alguma janela de terminal que imprimisse "THIS IS TEST!", depois "PLEASE ENTER..." e aguardando o pressionamento da tecla Enter. Finalmente, depois disso, o envio de notificação deverá ser recebido.
O que estou perdendo aqui?
#!/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}"
Responder1
A janela do terminal não é criada automaticamente. Você tem que criá-lo sozinho. Modifiquei seu script da seguinte forma:
#!/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}"
Coloquei todas as suas instruções (comandos a serem executados dentro do terminal) em umbash
funçãoeexport
editou-o, para que possa ser usado por processos filhos.
Então, usei o gnome-terminal --title="Testing..."
comando para criar uma janela de terminal com um título apropriado. A --wait
opção forçará o gnome-terminal
comando a não retornar até que os comandos a serem executados após a --
opção serem finalizados.
Por favor, leia oman gnome-terminal
páginapara mais opções.
Dependendo de suas necessidades, uma versão mais curta pode ser esta:
#!/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}"
Veja também ozenity
comando para obter mais opções de entrada/saída de seus scripts Nautilus. Aqui está um exemplo muito básico:
#!/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"