Bash Script для перетаскивания файла в новое место

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

Я хочу иметь возможность перетаскивать файл в настольное приложение, которое затем вызывает скрипт bash, который переместит этот файл в место, обозначенное в скрипте bash. Вот то, что есть до сих пор.

Скрипт Bash

#! /bin/bash

mv $file /path/to/new/directory

Однако я не могу понять, как ввести $file в качестве переменной, когда перетаскиваю ее в настольное приложение. Как я могу это сделать?

Причина: у меня есть документы, которые мне нужно прочитать в одной папке, и после прочтения я помещаю их в другую папку. Я просто хочу, чтобы это было легко сделать.

Спасибо, Пол.

8
задан 4 April 2016 в 13:54

3 ответа

  1. Создают удар scriptfile со следующим содержанием:

    #!/bin/bash
    mv "$1" "PATH_TO_NEW_DIRECTORY"
    
  2. Создают .desktop файл со следующим содержанием:

    [Desktop Entry]
    Name=Document Mover
    Exec=PATH_TO_SCRIPT_FILE %U
    Type=Application
    
  3. Изменение PATH_TO_NEW_DIRECTORY и PATH_TO_SCRIPT_FILE к Вашей симпатии.

  4. Делают chmod +x script_name

  5. , Перетаскивают файлы в .desktop файл.

  6. Сделанный!.

24
ответ дан 4 April 2016 в 23:54
  • 1
    @SAndrew " Представление Source" из шоу браузера очищенное представление источника (это предназначает и разделяет теги по нескольким строкам). Вы посмотрели на фактическое file.txt, чтобы проверить, соответствует ли это тому, что Вы видите в браузере? Кроме того, страницы могут содержать динамично сгенерированное содержание с помощью JavaScript и т.д. и Вас won' t видят что когда curl луг страница. – Olorin 12 August 2017 в 18:21

Никакая потребность в сценарии. Создайте ссылку на PATH_TO_NEW_DIRECTORY, где Вам нужен он. Затем перетащите файл к ссылке

14
ответ дан 4 April 2016 в 23:54
  • 1
    Я проверил file.txt и большинство соответствий содержания, но не уверенный. Тогда, каков мог быть лучший способ извлечь данные (скопируйте строку) от какой-либо веб-страницы. – S Andrew 12 August 2017 в 18:23

Какой сказанный @Slug45 абсолютно корректен. Однако это испытывает недостаток в объяснении.

, Когда Вы перетаскиваете файл на исполняемый файл (или ссылка на одну), тот исполняемый файл выполняется с путем к перетащенному файлу как аргумент. Это - точно то же в Windows (не, что это действительно имеет значение здесь).

Bash имеет простой способ иметь дело с аргументами. Используйте "$@" (с кавычками) для получения массива всех аргументов (полезный, например, в для.. в цикле). $@, "$*", и $* делают подобные вещи, но Вы почти всегда хотите "$@". См. здесь для получения дополнительной информации о специфических особенностях.

, Кроме того, можно непосредственно получить доступ к определенному args как $X, где X число аргумента. Например:

$ cat ./args.sh
echo $1
echo $2
echo $3
$ ./args.sh foo bar baz
foo
bar
baz
$

В больших сценариях, лучше присвоить сценарии к именованным переменным:

$ cat music.sh
#!/bin/bash
# Usage: ./music.sh Artist Album Song
ARTIST=$1
ALBUM=$2
SONG=$3

if [ $ARTIST -eq "Nickelback" ]; then exit; fi

mplayer ~/Music/$ARTIST/$ALBUM/$SONG.mp3
3
ответ дан 4 April 2016 в 23:54

Другие вопросы по тегам:

Похожие вопросы: