Creé un script simple y lo puse en ~/.local/share/nautilus/scripts/ (script al final de la publicación).
Puedo ejecutar con clic derecho en Nautilus->Scripts->myScript.sh, todo bien hasta ahora.
El problema es que no se presenta ninguna ventana de terminal ni ningún resultado. Solo recibo ese mensaje de notificación y envío correctamente completado con la ruta al archivo seleccionado sin esperar.
Esperaría que haya alguna ventana de terminal que imprima "¡ESTO ES UNA PRUEBA!", luego "POR FAVOR ENTRAR..." y esperando que se presione la tecla Enter. Finalmente después de esto se debería recibir la notificación-envío.
¿Que me estoy perdiendo 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}"
Respuesta1
La ventana de terminal no se crea automáticamente. Tienes que crearlo por ti mismo. Modifiqué su script de la siguiente manera:
#!/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}"
He puesto todas sus declaraciones (comandos para ejecutar dentro de la terminal) en unbash
funciónyexport
Lo editamos para que pueda ser utilizado por procesos secundarios.
Luego, utilicé el gnome-terminal --title="Testing..."
comando para crear una ventana de terminal con un título apropiado. La --wait
opción obligará al comando a no regresar hasta que finalicen gnome-terminal
los comandos que se ejecutarán después de la opción.--
Por favor, lea elman gnome-terminal
páginapara más opciones.
Dependiendo de sus necesidades, una versión más corta podría 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}"
Mira también elzenity
comando para obtener más opciones para realizar entradas/salidas desde sus scripts nautilus. Aquí hay un ejemplo muy 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"