Имеем простейший скрипт на баше (запуск из контекстного меню файломанагера Caja )
нужно прямо в нём ,скрипте,проверить условия
если ничего не выбрано/выделено - выход
если была выделена директория и нажат Ctrl_Right выполнить команду1 (сменить владельца рекурсивно)
если была выделена директория/файл выполнить команду2 (сменить владельца только для выделенного)
иначе выполнить команду3
выход
P.S.
вот чего я с горем пополам нагородил ,НО затык в этой строке
if [[ echo "$key" == "key[105]=down" ]] заменил обхитрил :)
но что то я уже не могу сообразить ,почему не меняет владельца,что не так?через консоль всё норм.
#!/bin/sh
path="$CAJA_SCRIPT_SELECTED_FILE_PATHS"
user='root'
# нахожу id активной клавы
idkb=$(xinput list | grep -Po 'AT Translated Set 2 keyboard\s+id=\d+' | grep -Po '\d+$')
# и присваиваю переменной key значение нажатой кнопки
#"key[105]=down" - нажата , "key[105]=up" - НЕ нажата .
key=$(xinput --query-state $idkb | grep -Po '105]=.*' )
# если в момент выполнения скрипта была нажата клавиша Ctrl_Right
#т.е предыдущая строка/команда вернула значение "key[105]=down"
#ПОЧЕМУ ТО ОШИБКА ,ПОЭТОМУ ПРИШЛОСЬ СДЕЛАТЬ ТАК
if [ $key != "105]=up" ]
then
# выводим сообщение и выполняем команду рекурсивного смены пользователя
sudo chown -R $user $path && notify-send "рекурсивно"
else
# если нет , т.е. вернуло (должно вернуть "key[105]=up" ) ,
# тогда меняем пользователя только для выделенного файла/директории
sudo chown $user $path && notify-send "один"
fi
# ПО БОЛЬШОМУ СЧЁТУ , ВСЕ СООБЩЕНИЯ В ЭТОМ КОДЕ,НУЖНЫ ТОЛЬКО ДЛЯ ОТЛАДКИ
notify-send -t 3000 " владельцем nуть: $path стал $user кейкод клавиши: $key" ;