Използване на BASH и Zenity в Nautilus

Публикувано на

Както знаем стандартният файлов мениджър за Gnome има възможност да сложим наши скриптове, писани на който си искаме език, които от своя страна да ни помагат и автоматизират работата.

    Преди да направим какъвто и да е смислен скрипт първо трябва да започнем с някакво въведение. Първо можем да видим с какви променливи разполагаме (enviroment variables). За целта създаваме си примерен скрипт в директория ~/.gnome2/nautilus-scripts със следното съдържание:

#!/bin/bash
set | zenity --text-info --width=800 --height=600 --title="$PWD"

    Ако направим файла изпълним и след това кликнем някъде в nautilus с десния бутон на мишката и от под меню scripts изберем името на файла който току що създадохме (повтарям файлът трябва да е изпълним, за да се види в това меню), ще видим резултатът от нашето дело.

    Това обаче не са всички променливи с които разполагаме. По-важните които ни интересуват са стандартните параметри подадени към bash скрипт които могат да бъдат достъпени с $@ или $1, $2, $3 ...

    За да ги видим ще доразвием нашият скрипт:

#!/bin/bash

(
  echo '===================================='
  echo 'Enviroment variables:'
  echo '------------------------------------'
  set
  echo '===================================='
  echo ' Arguments passed to script'
  echo '------------------------------------'
  echo "\$@: $@"
  echo "\$#: $#"
  for ((i=1; i <= $#; i++)); do
     echo "\$$i = ${!i}"
  done
  echo '===================================='
) | zenity --text-info --width=800 --height=600 --title="$PWD"

    Тук ясно се вижда, как съм оградил целия скрипт в блок със скоби и подавам изхода към zenity. Добавил съм и няколко echo-та за да разграничаваме по-добре изхода.

    С така направения скрипт може да се експериментира ако се кликне върху файл или директория, или пък бъдат маркирани няколко файла и след това пуснат скрипта, за да се види кои променливи ни трябват в действителност и каква точно информация ни носят.

    При всяко изпълнение на скрипт през контекстното меню на nautilus, той декларира няколко променливи за наше улеснение:

NAUTILUS_SCRIPT_CURRENT_URI
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
NAUTILUS_SCRIPT_SELECTED_URIS
NAUTILUS_SCRIPT_NEXT_PANE_CURRENT_URI
NAUTILUS_SCRIPT_NEXT_PANE_SELECTED_FILE_PATHS
NAUTILUS_SCRIPT_NEXT_PANE_SELECTED_URIS
NAUTILUS_SCRIPT_WINDOW_GEOMETRY

    Тъй като не са ни нужни всички променливи които виждаме с командата set, за това можем да си направим скрипт само за променливите на nautilus.

    В променливите:

NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
NAUTILUS_SCRIPT_SELECTED_URIS
NAUTILUS_SCRIPT_NEXT_PANE_SELECTED_FILE_PATHS
NAUTILUS_SCRIPT_NEXT_PANE_SELECTED_URIS

има информация не само за един файл. Следващият път ще покажа как да вземем файловете от тези променливи.

blog comments powered by Disqus