Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Primi passi nel creare script
#1
Ciao a tutti,

sebbene sia un principiante dell'informatica, grazie ai consigli/guide del Prof. Cantaro ho provato a fare uno script semplice per unire i pdf e farne uno solo.

I
Codice:
#!/bin/bash

#questo script è per unire i pdf e crearne uno unico

cd /home/giovanni/Scrivania/dir_esecuzione/00_pdf_da_unire

pdftk *.pdf output unito.pdf

mv unito.pdf /home/giovanni/Scrivania/dir_esecuzione/Pdf_già_uniti/unito.pdf

mv *.pdf /home/giovanni/Scrivania/dir_esecuzione/pdf_singoli

exit

solo che non so in che modo far si che questo script mi chieda ogni volta che nome dare al nuovo .pdf creato e in quale cartella destinarlo.

Qualcuno di voi mi può aiutare a capire i comandi che servono per questo tipo di operazioni?
Cita messaggio
#2
O te lo fai chiedere con una finestrina di zenity o ancora più semplicemente glielo passi quando chiami lo script:
./script.sh /percorso/di/nome/che/ti/pare.pdf.
Dentro lo script correggi tutte le occorrenze di 'unito.pdf' con '$1' e
Il file prodotto sarà /percorso/di/nome/che/ti/pare.pdf.
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#3
ciao .. come si fa a farselo chiedere dalla finestrina di zenity?

una volta editato lo script non vorrei doverlo toccare più... era quello l'obiettivo Smile
dover solo mettere il nome del file e la destinazione Smile
Cita messaggio
#4
Come mi hai detto non funziona... cosa è il comando $1?
Cita messaggio
#5
È la 2a variabile attribuita allo script.
La 1a ($0) è ovviamente il suo nome e non puoi cambiarla, o almeno non credo, mentre le successive le puoi settare tu direttamente lanciando lo script.

Posta lo script come lo hai corretto e la stringa con la quale lo richiami.
Prova anche a sostituire il percorso assoluto con un percorso relativo.
Le directory nel percorso esistono tutte? Se ne manca una, gli va detto di crearla.

A zenity pensaci dopo aver visto che funziona.
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#6
In pratica quando l'ho correto con "$1" era così
Codice:
#!/bin/bash

#questo script è per unire i pdf e crearne uno unico

cd /home/giovanni/Scrivania/dir_esecuzione/00_pdf_da_unire

echo "Unisco i file"
pdftk *.pdf output $1

echo "Sposto il file unito in Pdf_già_uniti"
mv $1 /home/giovanni/Scrivania/dir_esecuzione/Pdf_già_uniti/$1

echo "Sposto i singoli file in pdf_singoli"
mv *.pdf /home/giovanni/Scrivania/dir_esecuzione/pdf_singoli

echo "guarda un po"; sleep 5;

exit

lo richiamo dal terminale con
Codice:
./unirepdf.sh
[/quote]

ma come farei eventualmente a far entrare in gioco zenity?
Cita messaggio
#7
Forse non mi ero spiegato bene, cmq io farei qualcosa tipo:

Richiamo dello script
./script.sh nomefile.pdf

Codice di script.sh
Codice:
#!/bin/bash

#questo script è per unire i pdf e crearne uno unico

PRIMADIR=/home/giovanni/Scrivania/dir_esecuzione/00_pdf_da_unire
SECONDADIR=/home/giovanni/Scrivania/dir_esecuzione/Pdf_già_uniti
TERZADIR=/home/giovanni/Scrivania/dir_esecuzione/pdf_singoli

pdftk $PRIMADIR/*.pdf output $SECONDADIR/$1

mv $PRIMADIR/*.pdf $TERZADIR/

exit

OPPURE

Richiamo dello script
./script.sh

Codice di script.sh
Codice:
#!/bin/bash

#questo script è per unire i pdf e crearne uno unico

PDF=`zenity --entry --title="Unire pdf"  --text="Inserisci il nome del file di output" --entry-text=".pdf"`

PRIMADIR=/home/giovanni/Scrivania/dir_esecuzione/00_pdf_da_unire
SECONDADIR=/home/giovanni/Scrivania/dir_esecuzione/Pdf_già_uniti
TERZADIR=/home/giovanni/Scrivania/dir_esecuzione/pdf_singoli

pdftk $PRIMADIR/*.pdf output $SECONDADIR/$PDF

mv $PRIMADIR/*.pdf $TERZADIR/

exit
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#8
Grassie mille! Smile

Siccome vorrei imparare se posso ti chiedo un'altro paio di cose, se hai tempo e voglia di rispondermi.

1 come si fanno quegli apostrofi dopo "PDF=" e ".pdf"" ?

Codice:
PDF=`zenity ..........pdf"`


2 ho modificato un po lo script per completarlo e per tentare di avere anche una finestra zenity dove selezionare i pdf da unire..ma non funziona.. sapresti dove ho sbagliato o se manca qualcosa?

Codice:
#!/bin/bash

#questo script è per unire i pdf e crearne uno unico

IMP=`zenity --file-selection --multiple`

PDF=`zenity --entry --title="Unire pdf"  --text="Inserisci il nome del file di output" --entry-text=".pdf"`

PRIMADIR=/home/giovanni/Scrivania/dir_esecuzione/00_pdf_da_unire
SECONDADIR=/home/giovanni/Scrivania/dir_esecuzione/Pdf_già_uniti
TERZADIR=/home/giovanni/Scrivania/dir_esecuzione/pdf_singoli

pdftk $IMP output $SECONDADIR/$PDF

cp $PRIMADIR/*.pdf $TERZADIR/

exit

Per l'esattezza mi compare la finestra zenity di selezione file ma poi mi dà errore di input
Cita messaggio
#9
Che vuol dire errrore di input?
Probabilmente lo script va avanti lo stesso e $IMP è settata ma di certo non può funzionare come l'hai messa tu: va esplosa con | come separatore e fatto un ciclo oppure bisogna guardare se c'è un'opzione propria di pdftk per impostare un separatore.

Quindi intanto metti un
echo $IMP
da qualche parte tanto per vedere cosa si è scritta dentro

Vedo ora che la stessa domanda l'hai postata su ubuntu-it e ti hanno risposto con la stringa
pdftk `echo ${chosenFiles//|/ }`
che per quanto ne so potrebbe anche funzionare; cioè diventare:
pdftk `echo ${IMP//|/ }` output $SECONDADIR/$PDF

` si scrive con AltGr+'
[Immagine: http://pclinuxos.com/forum/avatars/Pengu...guitux.png] Parole !
Mai che se ne trovino due uguali !
Cita messaggio
#10
Si avevo fretta di imparare Smile
ed ho scritto anche li su ubuntu..
è da ieri che volevo concludere questo script e imparare come si fa..

Zafran grazie mille ... sei stato provvidenziale per capire come fare lo script.
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)