Я уверен, что получу свою задницу мне за этот вопрос, но я просто не могу понять это. Я новичок в написании сценариев bash, так что будь осторожен со мной ...
Я хочу иметь возможность перетаскивать файл в настольное приложение, которое затем вызывает скрипт bash, который переместит этот файл в место, обозначенное в скрипте bash. Вот что уже есть.
Скрипт bash
#! /bin/bash
mv $file /path/to/new/directory
Однако я не могу понять, как вводить $file
переменную, когда перетаскиваю ее в настольное приложение. Как я могу это сделать?
Причина: у меня есть документы, которые мне нужно прочитать в одной папке, и, прочитав их, я положил их в другую папку. Я просто хочу сделать это легко.
Спасибо пол
command-line
bash
scripts
PaulFrater
источник
источник
Ответы:
Создайте файл сценария bash со следующим содержимым:
Создайте файл .desktop со следующим содержимым:
Измените PATH_TO_NEW_DIRECTORY и PATH_TO_SCRIPT_FILE по своему вкусу.
Делать
chmod +x script_name
Перетащите файлы в файл .desktop.
Выполнено!.
источник
$file
вместо"$file"
(или"${file}"
) может привести к неприятностям.bash
здесь;#!/bin/sh
достаточно сделать то же самое (хотя это может быть связано с темbash
или иным способом во многих системах).Нет необходимости в сценарии. Создайте ссылку на PATH_TO_NEW_DIRECTORY, где она вам нужна. Затем перетащите файл по ссылке
источник
То, что сказал @ Slug45, совершенно правильно. Однако этому не хватает объяснения.
Когда вы перетаскиваете файл на исполняемый файл (или ссылку на него), этот исполняемый файл запускается с путем к перетаскиваемому файлу в качестве аргумента. Это точно так же в Windows (не то, чтобы здесь это действительно имело значение).
У Bash простой способ справиться с аргументами. Используйте
"$@"
(с кавычками), чтобы получить массив всех аргументов (полезно, например, в цикле for..in).$@
,"$*"
И$*
делать подобные вещи, но вы почти всегда хотите"$@"
. Смотрите здесь для получения дополнительной информации о специфике.Кроме того, вы можете напрямую получить доступ к определенным аргументам, например,
$X
где X - номер аргумента. Например:В больших сценариях лучше назначать их именованным переменным:
источник