2017-01-06 10 views
0

Я пытаюсь выполнить сценарий оболочки, который получает для аргумента имя файла.Пропустить имя файла из Nautilus в сценарий оболочки

Я могу это сделать, если я иду на терминал и набираю полный ПУТИ.

Но я пытаюсь сделать это более удобным для пользователя, поэтому я хочу, чтобы отправить аргумент (полный путь) из файлового менеджера или nautilus.

Возможно ли это?

+0

Да, это возможно. – kaylum

+0

@kaylum Я думаю, что подразумевается «как?». – Barmar

+0

@kaylum ... Как я могу это сделать ?? например, зайдите в диспетчер файлов и запустите сценарий, чем получите для аргумента путь к файлу. – Agustin

ответ

0

Ok Я собираюсь поделиться, как я обнаружил, что работает.

Все, что я пытался сделать, это передать путь в качестве аргумента, не набрав его в командной строке. чтобы сделать его удобным для пользователя.

Поэтому я использую инструмент zenity, выбор файла, чтобы просмотреть файл-менеджер и выбрать файл.

./script.sh $(zenity --file-selection) 

См., Теперь я передаю путь к файлу, который я выбрал.

Если вы хотите попробовать это, просто введите командную строку.

zenity --file-selection 
1

Это возможно. Вот как это сделать:

Скопируйте свой скрипт в папку ~/.local/share/nautilus/scripts/ - обратите внимание, что этот путь будет расширяться, чтобы включать в себя текущую информацию пользователя, такую ​​как: /home/john/.local/share/nautilus/scripts/.

Теперь, на вашем скрипте, запишите аргумент, используя $1. Например, допустим, что ваш сценарий предназначен для удаления файла, то ваш сценарий может выглядеть так:

#!/bin/bash 
rm -f "$1" 
exit 

Теперь перезапустите Nautilus и перейдите к файлу, который вы хотите выполнить действие на. Щелкните файл правой кнопкой мыши и в появившемся меню выберите «scripts», а в появившемся суменюте выберите свое имя сценария - это будет выполнять ваш скрипт с именем файла в качестве аргумента.

Примечание: не забудьте сделать ваш скрипт исполняемым первым, например:

+0

Эй, спасибо, это замечательный ответ со всем, что так ясно. Я собираюсь попробовать это прямо сейчас. Я также нашел другой способ сделать это. Это не совсем исполнение скрипта от наутилуса, но оно работает для меня. Я делюсь, поскольку кто-то может найти это полезным. При выполнении сценария используйте инструмент выбора файлов zenity. В моем примере ./script.sh $ (zenity -file-selection) Это позволит вам просматривать ваши файлы и при выборе файла. Путь передается как аргумент вашего скрипта. Еще раз спасибо всем за помощь и удачу всем. – Agustin

+0

Добро пожаловать. Когда ответ помог вам в переполнении стека, подумайте над этим ответом, чтобы он сообщал другим, что это хороший ответ.Другое дело: если ваш скрипт требует прав root для работы, вы все равно можете добиться этого, используя 'gksudo' в вызове. –

+0

О, я сделал Upvoted, Он просто говорит, что, поскольку я новичок здесь, мне нужно иметь репутацию перед публичным голосованием. Но это действительно так. – Agustin