Tenho certeza de que vou me entregar para esta pergunta, mas não consigo entender. Eu sou novo em bash scripts, então vá com calma comigo ...
Quero poder arrastar e soltar um arquivo em um aplicativo da área de trabalho, que chama um script bash que moverá esse arquivo para um local designado no script bash. Aqui está o que tem até agora.
Script Bash
#! /bin/bash
mv $file /path/to/new/directory
No entanto, não consigo descobrir como inserir a $file
variável como quando a arrasto e solto em um aplicativo de desktop. Como posso fazer isso?
Motivo: tenho papéis que preciso ler em uma pasta e, depois de lê-los, coloco-os em outra pasta. Basicamente, só quero facilitar isso.
Obrigado Paul
command-line
bash
scripts
PaulFrater
fonte
fonte
Respostas:
Crie um arquivo de script bash com o seguinte conteúdo:
Crie um arquivo .desktop com o seguinte conteúdo:
Mude PATH_TO_NEW_DIRECTORY e PATH_TO_SCRIPT_FILE ao seu gosto.
Faz
chmod +x script_name
Arraste os arquivos para o arquivo .desktop.
Feito!.
fonte
$file
vez de"$file"
(ou"${file}"
) pode causar muitos problemas.bash
aqui;#!/bin/sh
é suficiente fazer o mesmo (embora possa estar vinculado debash
qualquer maneira em muitos sistemas).Não há necessidade de um script. Crie um link para PATH_TO_NEW_DIRECTORY onde você precisar. Em seguida, arraste o arquivo para o link
fonte
O que o @ Slug45 disse está completamente correto. No entanto, falta uma explicação.
Quando você arrasta e solta um arquivo em um arquivo executável (ou um link para um), esse executável é executado com o caminho para o arquivo arrastado como argumento. Isso é exatamente o mesmo no Windows (não que isso realmente importe aqui).
Bash tem uma maneira simples de lidar com argumentos. Use
"$@"
(com as aspas) para obter uma matriz de todos os argumentos (útil por exemplo em um loop for..in).$@
,,"$*"
e$*
faça coisas semelhantes, mas você quase sempre deseja"$@"
. Veja aqui para mais informações sobre os detalhes.Além disso, você pode acessar diretamente argumentos específicos,
$X
onde X é o número do argumento. Por exemplo:Em scripts grandes, é melhor atribuir aqueles a variáveis nomeadas:
fonte