apro questo topic partendo da una domanda:
cosa è un pc?
la risposta che mi son dato è che un pc non è altro che uno strumento che ci permette di compiere
calcoli, operazioni ,guardare film , ascoltare musica , creare film immagini musica , un pc ci permette
di tenerci aggiornati in tempo reale ed informati in sintesi il pc è in-forma-azione uno strumento
che ci permette di formare azione.
spesso ci si limita a guardare il monitor ed ad intendere il pc solo come sistema operativo
ma in realtà il computer parte dalla punta delle nostre dita cioè dalla tastiera che invia
comandi al sistema per portarlo dove vogliamo la tastiera è lo strumento principale del pc
senza tastiera al momento non è possibile comunicare con il sistema.
quindi secondo me è importante oltre che configurare il sistema configurare la tastiera
assegnado a dei tasti o una combinazioni di tasti dei processi che posson fare immediatamente
dire al sistema cosa vogliamo da lui , senza dover sprecare energie nel ricordare e scrivere
linee di comando che spesso sono lunghe con sintassi simili trattini segni speciali punti duepunti
puntini slash maiuscole miniscole e così via dicendo.
così con uno script associato ad una combinazione di tasti è possibile fare del PC
il proprio Computer Personale , proprio perchè personalizzato con i nostri comandi
e la nostra tastiera.
da qui parte l'idea di questo topic che possa essere d'ispirazione a nuove frontiere
ed a nuove idee , tenendo presente che mecomemedesimo sono un dilettante che come voi
è appassionato di informazione automatica meglio conosciuta come informatica . :) :) :'(
Ciao trigg, complimenti per il titolo del topic... :)
In effetti questo nuovo topic nasce da un altro topic che mi sembra opportuno ricordare se si vuole comprendere meglio lo spirito con il quale parte: http://www.linuxminditalia.org/index.php?topic=24534.msg267649#msg267649
In questa precedente discussione, quasi per gioco, sono stati concepiti degli script che, senza avere la pretesa di essere particolarmente utili, svolgono la funzione per la quale sono stati realizzati.
Anche se elementari credo che rappresentino una forma di programmazione, rendendo di fatto il loro autore un programmatore dilettante.
Da parte mia, complice il fatto che uso una distribuzione che fa largo uso di script, ne sono come minimo incuriosito, ma anche interessato, A me infatti piacerebbe, per esempio, realizzare una slackbuild che si occupi di compilare, pacchettizzare e installare Baka-Mplayer, un player video per il quale non esistono per slackware pacchetti precompilati o slackbuild per compilarlo.
Naturalmente so che non ci si può improvvisare programmatore, sarà necessario portare il livello di conoscenza della materia a un livello almeno di un pochino superiore.
Questa guida: http://www.html.it/guide/shell-scripting-la-guida/, sembra essere un buon punto di partenza. Suggerimenti ulteriori in tal senso sarebbero comunque molto apprezzati. ;)
:ciao:
grazie nick per i complimenti , specialmente per il programmatore dilettante :bonk: >:( :grin:
questo script può sembrare inutile ma secondo me può farti risparmiare tempo ed energie considerando il fatto che bisogna cmq fare dei copia -incolla anche normalmente
si tratta di scaricare file tar , scompattarli aprire la finestra di destinazione e mantenere aperto il terminale sempre nella posszione del download
per scompattare il file ho preferito usare dtrx che ti da modo in fase di scompattamento di scegliere dove scompattare , di rinominare la cartella o di lasciare nome e destinazione invariati
lo script è questo
#!/bin/bash
wmctrl -r TerminalEmulator -b add,above
cd /home/tom/Scaricati/000/
echo Incolla nome
read nome
echo incolla link
read link
$exec wget -O $nome $link
ls
$exec dtrx $nome
$exec thunar /home/tom/Scaricati/000
/bin/bash
exit
la scorciatoa tastiera se la si vule è questa
exo-open --launch TerminalEmulator /mnt/DATI/anarchy/scorciatoietastiera/ext.sh
il risultato è questo
ho anche fatto un'aggiornamento del sistema
https://drive.google.com/file/d/1ar7yk3D-KhxFvyS39mdROFEY4WiL2s2e/view?usp=sharing (https://drive.google.com/file/d/1ar7yk3D-KhxFvyS39mdROFEY4WiL2s2e/view?usp=sharing) :)
avrei voluto anche aggiungere l'installazione ma per ovvie ragioni non è possibile farlo almeno per le mie conoscenze
cmq ho fatto si di poter operare o nella cartella o nel terminale :ciao:
Ho visto il video e, anche se non ho capito perché dovrai scaricare un file .tar, la sensazione che ho avuto è che il computer ha eseguito la serie di compiti che gli hai assegnato. Che poi questi compiti abbiano o meno una qualche utilità può anche considerarsi un fatto di secondaria importanza. La cosa importante è che l'esercizio dia sempre qualche soddisfazione.
Per come la vedo io possiamo anche "inventare" cose che sono già state inventate e anche copiarle, in parte. La cosa importante è capire cosa stai copiando, per poterlo usare e magari adattarlo in una situazione diversa.
Quindi, se vuoi, puoi proseguire come stai facendo, oppure, e io così mi sentirei un po' più partecipe, facendo qualcosa che sia condivisibile e utilizzabile nel quotidiano.
Dal momento che siamo accomunati da slackware la prima cosa che mi viene in mente è uno script che dia: slackpkg update e poi slackpkg upgrade-all e che sia interattivo quanto basta da poter interrompere l'operazione nel caso in cui non ci siano pacchetti per l'upgrade. Questo per cercare di tenere insieme utile e fattibile. :)
Inoltre ci terrei a sottolineare che per quanto mi riguarda questa è un'attività ludica, non dobbiamo dimostrare niente ne avere aspettative troppo alte.
In un lontano passato(...fine anni '80) un amico frequentava un corso di informatica. Alla fine del corso mi mostrò orgoglioso il programma che aveva realizzato, il programma disegnava, con delle linee a zigzag, il contorno di un albero di natale. All'epoca non capii il suo slack e mi concentrai più sul sospetto che fosse lo stesso albero per tutti i partecipanti del suo corso, e di molti altri corsi prima e dopo del suo... ;D
...Per come la vedo io qui possiamo anche fare solo stelle comete. Fino alla fine dei tempi. :D
Possiamo pure partire cercando di capire se e come possiamo adattare uno script semplice per ubuntu a una distribuzione diversa, e viceversa...
...Se ti va pensaci.
in effetti l'esempio di scaricare il tema è molto fuorviante
l'idea è quella di usarlo per i pacchetti da installare dove bisogna leggere i readme per l'installazione
domani cambio la postazione dei pc per poter utilizzare e lavorare con slackware più comodamente
:roll:
...Che me lo sono sognato il post che stava qui 5 minuti fa? Mi fai rispondere e mentre rispondo mi cancelli la domanda? >:( ;D
Comunque, se rispetto all'ultima volta slackpkg update non trova variazioni in ultimo ti fa una domanda, vedi l'output:
root@slackware:~# slackpkg update
Updating the package lists...
Downloading...
2018-05-25 09:21:44 URL:http://mirrors.slackware.com/slackware/slackware64-14.2/ChangeLog.txt [480522/480522] -> "/tmp/slackpkg.WHmS3m/ChangeLog.txt" [1]
Saving ChangeLog.txt from repository slackpkgplus ...
Saving ChangeLog.txt from repository restricted ...
Saving ChangeLog.txt from repository alienbob ...
Saving ChangeLog.txt from repository multilib ...
Saving ChangeLog.txt from repository cinelerracv ...
2018-05-25 09:21:48 URL:http://slakfinder.org/slackpkg+/CHECKSUMS.md5 [2200/2200] -> "/tmp/slackpkg.WHmS3m/CHECKSUMS.md5-slackpkgplus" [1]
2018-05-25 09:21:48 URL:http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/14.2/x86_64/CHECKSUMS.md5 [4068/4068] -> "/tmp/slackpkg.WHmS3m/CHECKSUMS.md5-restricted" [1]
2018-05-25 09:21:49 URL:http://bear.alienbase.nl/mirrors/people/alien/sbrepos/14.2/x86_64/CHECKSUMS.md5 [182574/182574] -> "/tmp/slackpkg.WHmS3m/CHECKSUMS.md5-alienbob" [1]
2018-05-25 09:21:49 URL:http://bear.alienbase.nl/mirrors/people/alien/multilib/14.2/CHECKSUMS.md5 [117689/117689] -> "/tmp/slackpkg.WHmS3m/CHECKSUMS.md5-multilib" [1]
2018-05-25 09:21:50 URL:https://cinelerra-cv.org/repo/CHECKSUMS.md5 [21235/21235] -> "/tmp/slackpkg.WHmS3m/CHECKSUMS.md5-cinelerracv" [1]
No changes in ChangeLog.txt between your last update and now.
Do you really want to download all other files (y/N)?
Non essendoci pacchetti per l'upgrade ti propone una scelta in cui la risposta più opportuna è già selezionata (qui è NO), vedi la N maiuscola, ed è sufficiente dare invio per interrompere il procedimento.
Se invecieio volessi proseguire ugualmente dovrei scrivere y e dare invio.
Per risolvere il dubbio a monte del problema, l'esecuzione dei comandi precedenti può essere subordinata all'esito di quest'altro comando:
slackpkg check-updates
Infatti, se lo do, ottengo questa risposta:
root@slackware:~# slackpkg check-updates
Searching for updates... No news is good news
root@slackware:~#
ed è inutile proseguire con l'esecuzione
Le pagine man di slackpkg sono in italiano, leggile con attenzione ;)
SLACKPKG(8) SLACKPKG(8)
NOME
slackpkg - Strumento automatico per la gestione dei pacchetti di
Slackware Linux
SINOSSI
slackpkg [OPZIONI] {install|remove|search|upgrade|reinstall|blacklist}
{SCHEMA|FILE}
slackpkg [OPZIONI] {clean-system|upgrade-all|install-new}
slackpkg [OPZIONI] {search|file-search} {SCHEMA|FILE}
slackpkg [OPZIONI] {generate-template|install-template|remove-template}
NOMEMODELLO
slackpkg [OPZIONI] info PACCHETTO
slackpkg [OPZIONI] update [gpg]
slackpkg [OPZIONI] {new-config|check-updates}
slackpkg [OPZIONI] help
DESCRIZIONE
Slackpkg è uno strumento per tutti quelli che vogliono installare e
aggiornare facilmente i pacchetti via rete. Con slackpkg, puoi avere
un'installazione minimale di Slackware Linux e installare/aggiornare
solo quei pacchetti di cui hai bisogno.
Non è necessario configurare NFS o creare decine di CD per i tuoi
computer; quello che serve è scrivere un comando e tutti gli ultimi
pacchetti di Slackware saranno nelle tue dita.
ISTRUZIONI
Slackpkg ha molte funzionalità. Puo' cercare file specifici, rimuovere
tutti i pacchetti di terze parti dal tuo sistema, installare pacchetti
aggiunti in Slackware dal tuo ultimo aggiornamento, vedere la
descrizione dei pacchetti, ecc.
Prima di iniziare, devi decommentare un archivio nel file
/etc/slackpkg/mirrors ed eseguire:
# slackpkg update
Questa azione "update" scaricherà e formatterà la lista dei file e dei
pacchetti di Slackware. Ogni volta che la lista viene cambiata, il
comando deve essere eseguito.
Le principali funzionalità di Slackpkg sono quelle che si collegano
direttamente alla gestione dei pacchetti: installare, aggiornare e
rimuovere pacchetti. Per fare questi compiti, la sintassi di Slackpkg
Manual page slackpkg(8) line 1/277 22% (press h for help or q to quit)
è:
# slackpkg [OPZIONI] <azione> {SCHEMA|FILE}
OPZIONI puo' essere una o piu' opzioni delle molte elencate dentro
/etc/slackpkg/slackpkg.conf. Ci sono comandi di linea equivalenti per
la maggior parte delle direttive di configurazione presenti nel file
slackpkg.conf - guarda la pagina del manuale slackpkg.conf(5) per
vedere le opzioni disponibili.
SCHEMA puo' essere il nome del pacchetto o solo una parte. Puo' anche
essere una serie (come kde, a, ap, ...).
FILE è un file con una lista di SCHEMI dentro: uno per linea, o diversi
per linea con lo spazio come separatore.
Slackpkg puo' essere usato per aggiornare l'intera distribuzione.
Il classico modo per farlo è':
# slackpkg update
# slackpkg install-new
# slackpkg upgrade-all
# slackpkg clean-system
Un'altra funzionalità di Slackpkg è l'abilità di lavorare con i
modelli, con i quali è piu' facile installare gli stessi pacchetti su
piu' macchine. I passi base sono i seguenti:
· Installazione su una macchina
· Esegui "slackpkg generate-template NOMEMODELLO"
· Copia /etc/slackpkg/templates/NOMEMODELLO.template nella stessa
cartella dell'altra macchina
· Esegui "slackpkg install-template NOMEMODELLO" sull'altra
macchina
NOMEMODELLO è il nome del tuo modello.
Seguendo questa pagina del manuale, puoi capire cosa ognuna di queste
(e altre) azioni fa.
AZIONI
help
Mostra le azioni di slackpkg e una veloce descrizione per ognuna
di esse. Utile se hai bisogno di sapere qualcosa in piu' di
slackpkg. Le informazioni presenti qui, sulla pagina del manuale,
sono piu' approfondite.
update
update scaricherà l'ultimo elenco dei pacchetti da un archivio di
Slackware (o dal tuo CD). E' una buona idea eseguire
Manual page slackpkg(8) line 54/277 39% (press h for help or q to quit)
# slackpkg update
prima di aggiornare, installare o cercare pacchetti.
Se hai bisogno di aggiornare la chiave GPG di Slackware, esegui
# slackpkg update gpg
La chiave GPG non cambia. Questo dovrebbe essere un comando da
eseguire solo una volta - quindi eseguilo una volta e
dimenticatelo...
check-updates
Verifica se c'è qualche aggiornamento nel ChangeLog.txt. E' buona
cosa usarlo da cron per avvertire l'amministratore di eventuali
aggiornamenti.
file-search
Puoi cercare i pacchetti ufficiali di Slackware per ogni file
presente nella distribuzione. Hai bisogno di una particolare
libreria? Usa file-search per trovarla.
# slackpkg file-search nomefile
Tutti i pacchetti che si accordano con "nomefile" saranno
mostrati, cosi' puoi vedere se i pacchetti sono installati o no;
se non installati, puoi scaricarli e installarli con le altre
azioni di slackpkg.
search
Puoi cercare ogni pacchetto rilasciato in Slackware.
# slackpkg search schema
Tutti i nomi dei pacchetti che si accordano con "schema" saranno
mostrati. Come per file-search, puoi vedere se i pacchetti sono
installati o no; se non installati, puoi scaricarli e installarli
con le altre azioni di slackpkg.
install
L'installazione di un pacchetto è molto semplice. Devi soltanto
scrivere:
# slackpkg install pacchetto
e il pacchetto sarà scaricato e installato
Non puoi usare l'opzione "install" per installare un pacchetto già
installato, ma tu potresti reinstallarlo o aggiornarlo.
upgrade
upgrade installa le piu' recenti versioni ufficiali dei pacchetti.
upgrade non proverà ad installare nuovi pacchetti (usa la funzione
Manual page slackpkg(8) line 107/277 56% (press h for help or q to quit)
...Continua
EDIT:
Lo script che hai postato nel post "desaparecido" l'ho salvato e l'ho eseguito, e ho visto come e dove si ferma. Non capisco perché l'hai rimosso. Una delle cose che poteva succedere è che qualcuno ti diceva qualcosa di interessante e di istruttivo, o anche il nulla. Andava bene lo stesso. In ogni caso non sarebbe male se leggendo questa discussione si potesse ripercorrere il percorso che ha portato al risultato ottenuto, che, anche quando fosse buono, sarebbe comunque perfezionabile. E quando non lo fosse rimarrebbe comunque una esperienza interessante. O almeno, questo è ciò che penso io. :ciao:
ho notato che non andava bene
così ho provato questo
dovrebbe andare bene
#!/bin/bash
slackpkg update
OPTIONS="upgrade Quit"
select opt in $OPTIONS; do
if [ "$opt" = "Quit" ]; then
echo done
exit
elif [ "$opt" = "upgrade" ]; then
echo done
slackpkg upgrade-all
fi
done
/bin/bash
exit
adesso devo capire come fare uscire un'altro menu dopo l'upgrade che ti chiede cosa fare se uscire o fare una nuova operazione.
al momento dopo l'upgrade bisgona pigiare 2 per uscire
qquesto dovrebbe essere l'ideale se ho capito bene
#!/bin/bash
slackpkg update
OPTIONS="upgrade Quit"
select opt in $OPTIONS; do
if [ "$opt" = "Quit" ]; then
echo done
exit
elif [ "$opt" = "upgrade" ]; then
echo done
slackpkg upgrade-all
exit
fi
done
/bin/bash
exit
dopo l'upgrade esce dallo script
Ok, questo non si inceppa. Eccellente!
Sembra fare perfettamente il suo compito. Complimenti. :ok:
Ora, visto che stiamo diventando bravi, possiamo farlo più interattivo?
Secondo me la sequenza ideale per gestire slackpkg dovrebbe avere queste opzioni
Editare la mirrorl list: nano /etc/slackpkg/mirrors
Editare la configurazione di slackpkgplus: nano /etc/slackpkg/slackpkgplus.conf
Se sono state apportate modifiche ai Mirrors di slackpkgplus eseguire slackpkg update gpg
Eseguire il comando di update: slackpkg update
Eseguire il comando di upgrade: slackpkg upgrade-all
Pensi che si possa fare?
si può fare
La Fucina di @trigg è operativa :mago: :mago: :mago: :D
questa è il primo algoritmo che mi è venuto in mente
alla fine di ogni operazione richiama lo script e basta digitare il numeretto per eseguire il comando
vale per tutti tranne che per quit che esce dallo script senza richiamarlo
bisogna solo cambiare il percorso dello script nel mio caso è /home/tom/Desktop/prova.sh
#!/bin/bash
OPTIONS="slackpkg_mirrors slackpkgplus.conf slackpkg_update_gpg slackpkg_update upgrade Quit"
select opt in $OPTIONS; do
if [ "$opt" = "Quit" ]; then
echo done
exit
elif [ "$opt" = "slackpkg_mirrors" ]; then
echo done
nano /etc/slackpkg/mirrors
sh /home/tom/Desktop/prova.sh
elif [ "$opt" = "slackpkgplus.conf" ]; then
echo done
nano /etc/slackpkg/slackpkgplus.conf
sh /home/tom/Desktop/prova.sh
elif [ "$opt" = "slackpkg_update_gpg" ]; then
echo done
slackpkg update gpg
sh /home/tom/Desktop/prova.sh
elif [ "$opt" = "slackpkg_update" ]; then
echo done
slackpkg update
sh /home/tom/Desktop/prova.sh
elif [ "$opt" = "upgrade" ]; then
echo done
slackpkg upgrade-all
sh /home/tom/Desktop/prova.sh
fi
done
exit
questo è quello corretto
#!/bin/bash
while true
do
PS3='Please enter your choice: '
options=("slackpkg mirrors" "slackpkgplus.conf" "update gpg" "update" "upgrade-all" "Quit")
select opt in "${options[@]}"
do
case $opt in
"slackpkg mirrors")
echo "slackpkg mirrors"
nano /etc/slackpkg/mirrors
echo "eseguito"
break
;;
"slackpkgplus.conf")
echo "slackpkgplus.conf"
nano /etc/slackpkg/slackpkgplus.conf
echo "eseguito"
break
;;
"update gpg")
echo "slackpkg update gpg"
slackpkg update gpg
echo "eseguito"
break
;;
"update")
echo "slackpkg update"
slackpkg update
echo "eseguito"
break
;;
"upgrade-all")
echo "slackpkg upgrade-all"
slackpkg upgrade-all
echo "eseguito"
break
;;
"Quit")
echo "Thank You..."
exit
;;
*) echo invalid option;;
esac
done
done
non richiama nulla ,
ho preferito lasciare la scelta di opzione senza dover fare update-gpg , update , upgrade-all in automatico
:entu:
Dopo li provo, adesso beccati un regaluccio. Guarda le immaglini:
(http://i.imgur.com/6IyWvPD.png)
(http://i.imgur.com/JNvAy0w.png)
(http://i.imgur.com/oKLo018.png)
Lanciare gli script col destro del mouse è una pacchia. ;D
preferisco la scorciatoia
exo-open --launch TerminalEmulator sudo sh /home/tom/p.sh
Si si. prego, non c'è di che. Che cosa c'entrano le scorciatoie, e chi ti impedisce di farle?
Quella è un'azione personalizzata di Thunar. Ti consente di avviare uno script l'istante successivo a quello in cui hai salvato il file (...su quelli su cui stai lavorando per esempio).
(http://i.imgur.com/AvF1Jjo.png)
...Ma tu "scorciati" le scorciatoie.
e lo so che serve a lanciare lo script
ahahaha mannaggia a te , te la sei presa , la mia non era una risposta alla tua soluzione
avevo solo un po di fretta , ma quando mai ho scritto una risposta di 2 righe :sigh:
...A me sembrava più una risposta un po' a "pisello di cane," che altro. E poi pensavo di essere io quello che da risposte articolate... :)
...Ma va bene, anche io ho scritto quel post di fretta (,,,perché era pronto in tavola), avrei dovuto articolare di più e meglio. ;D
L'ho provato e sembra funzionare bene. E' elementare, essenziale, magari può sembrare scarno. Ma funziona.
...Perché quelle parti non tradotte, che c'azzecca quel "Please enter your choice:" e quel "Thank You""
Non sarebbero stati meglio "Prego inserisci una scelta" e "Grazie"..?
grazie ^_^
per le parti in inglese ero più concentrato nella sostanza che nella forma dello script
volendo visto che non sempre si cambiano i file .conf delle mirrorlist
si può mettere in seconda riga
slackpkg check-updates
così ti cerca subito gli aggiornamenti
se ci sono allora puoi proseguire
#!/bin/bash
slackpkg check-updates
while true
do
PS3='Please enter your choice: '
options=("slackpkg mirrors" "slackpkgplus.conf" "upgrade-all" "Quit")
select opt in "${options[@]}"
do
case $opt in
"slackpkg mirrors")
echo "slackpkg mirrors"
nano /etc/slackpkg/mirrors
echo "eseguito"
break
;;
"slackpkgplus.conf")
echo "slackpkgplus.conf"
nano /etc/slackpkg/slackpkgplus.conf
echo "eseguito"
break
;;
"upgrade-all")
echo "slackpkg upgrade-all"
slackpkg update gpg
slackpkg update
slackpkg upgrade-all
echo "eseguito"
break
;;
"Quit")
echo "Thank You..."
exit
;;
*) echo invalid option;;
esac
done
done
adesso ho l'idea di fare uno script post-install per configurare slackware
userr,lingua, tastiera, mirrors,che ti installa i tar.gz salvati, update-upgrade
questo script permette di cercare, installare, rimuovere , aggiornare pacchetti dal terminale
https://drive.google.com/file/d/1qTlYEDb-9jA6g8IYXbPYV5pAQOK1OQAY/view?usp=sharing (https://drive.google.com/file/d/1qTlYEDb-9jA6g8IYXbPYV5pAQOK1OQAY/view?usp=sharing)
questa è la scorciatoia tastiera
exo-open --launch TerminalEmulator sudo /percorso/dello/script/.sh
questo è lo script
#!/bin/bash
while true
do
PS3='Please enter your choice: '
options=("cerca" "installa" "aggiorna sistema" "rimuovi pacchetto" "rimuovi pacchetto e dipendenze" "Quit")
select opt in "${options[@]}"
do
case $opt in
"cerca")
echo "cerca il pacchetto"
read CERCA
$sudo pacman -Ss $CERCA
echo "eseguito"
break
;;
"installa")
echo "nome pacchetto da installare"
read INSTALLA
$sudo pacman -S $INSTALLA
echo "eseguito"
break
;;
"aggiorna sistema")
echo "stai aggiornando il sistema"
$sudo pacman -Syyuu
echo "eseguito"
break
;;
"rimuovi pacchetto")
echo "rimuovi solo pacchetto lascia le dipendenze"
read RIMUOVI
$sudo pacman -R $RIMUOVI
echo "eseguito"
break
;;
"rimuovi pacchetto e dipendenze")
echo "rimuovi pacchetto e dipendenze"
read REMOVEALL
$sudo pacman -Rs $REMOVEALL
echo "eseguito"
break
;;
"Quit")
echo "Thank You..."
exit
;;
*) echo invalid option;;
esac
done
done
Perché hai usato la funzione caller?
perchè senza quella funzione mi restituiva errore
così con recall ho chiesto di lanciare una subroutine con il comando di quella riga
sono stato un giorno quasi a capire come poter lanciare il comando
durante l'esecuzione dell'opzione e questo almeno per le mie conoscenze
sembra essere il modo più semplòice per lanciare l comando
dopo consigli sono accetti , cavolo se servono :)
questo script è per linux mind cinnamon
#!/bin/bash
while true
do
PS3='Please enter your choice: '
options=("cerca" "installa" "aggiorna sistema" "rimuovi pacchetto" "purge" "Quit")
select opt in "${options[@]}"
do
case $opt in
"cerca")
echo "cerca il pacchetto"
read CERCA
$sudo apt-cache search $CERCA
echo "eseguito"
break
;;
"installa")
echo "nome pacchetto da installare"
read INSTALLA
$sudo apt-get install $INSTALLA
echo "eseguito"
break
;;
"aggiorna sistema")
echo "stai aggiornando il sistema"
$sudo apt-get update && sudo apt-get upgrade -y
echo "eseguito"
break
;;
"rimuovi pacchetto")
echo "rimuovi solo pacchetto lascia le dipendenze"
read RIMUOVI
$sudo apt-get remove $RIMUOVI
echo "eseguito"
break
;;
"purge")
echo "purge"
read REMOVEALL
$sudo apt-get purge $REMOVEALL
echo "eseguito"
break
;;
"Quit")
echo "Thank You..."
exit
;;
*) echo invalid option;;
esac
done
done
scorciatoia tastiera
gnome-terminal -e "sudo bash /percorso/dello/script/eseguibile/.sh"
Citazione di: trigg il Sabato 26 Maggio 2018, 14:04:20
perchè senza quella funzione mi restituiva errore
così con recall ho chiesto di lanciare una subroutine con il comando di quella riga
La funzione caller (non recall) non serve affatto a lanciare una subroutine, serve a tutt'altro.
Infatti, si può toglierla tranquillamente. Senza di essa lo script funziona lo stesso.
questo è lo stesso script per i sistemi gentoo
#!/bin/bash
sudo su
while true
do
PS3='Please enter your choice: '
options=("cerca" "installa" "autounmask-write" "rimuovi pacchetto" "aggiorna il sistema" "Quit")
select opt in "${options[@]}"
do
case $opt in
"cerca")
echo "cerca il pacchetto"
read CERCA
$sudo emerge --search $CERCA
echo "eseguito"
break
;;
"installa")
echo "nome pacchetto da installare"
read INSTALLA
$sudo emerge $INSTALLA
echo "eseguito"
break
;;
"autounmask-write")
echo "autounmask-write"
read Autounmask
echo "pacchetto"
read Pacchetto
$sudo emerge -av --autounmask-write =$Autounmask
$sudo etc-update /etc/portage/package.keywords/custom
$sudo emerge $Pacchetto
echo "eseguito"
break
;;
"rimuovi pacchetto")
echo "rimuovi il pacchetto"
read RIMUOVI
$sudo emerge --unmerge $RIMUOVI
echo "eseguito"
break
;;
"aggiorna il sistema")
echo "aggiorna il sistema"
read REMOVEALL
$sudo emerge --sync
$sudo emerge --update @world
echo "eseguito"
break
;;
"Quit")
echo "Thank You..."
exit
;;
*) echo invalid option;;
esac
done
done
devo solo capire come lanciare lo script con la scorciatoia in kde
Citazione di: Tony il Sabato 26 Maggio 2018, 14:47:54
Citazione di: trigg il Sabato 26 Maggio 2018, 14:04:20
perchè senza quella funzione mi restituiva errore
così con recall ho chiesto di lanciare una subroutine con il comando di quella riga
La funzione caller (non recall) non serve affatto a lanciare una subroutine, serve a tutt'altro.
Infatti, si può toglierla tranquillamente. Senza di essa lo script funziona lo stesso.
con arch mi dava errore
adesso sto facendo l'aggiornamento con calculate linux quando rientro in arch posto l'errore che mi da senza caller
e dove ho letto la sua funzionalità :ciao:
in effetti anche su arch va senza recall
probabilmente avevo sbagliato a digitare qualcosa e riscrivendo con recall ho corretto un'errore che non vedevo
perchè ho messo caller ?
leggendo le funzione cercando quella che poteva fare a caso mio ho trovato caller
(https://i.imgur.com/8JjrzL9.png)
quando ho letto che come funzione si tratta di una chiamata di subroutine allora ho pensato che poteva essere quella che cercavo
probabilmente come ho detto prima quando riscritto le righe inserendo il comando recall avrò corretto un'errore di battitura
Appunto, caller si usa di solito per debugging.
Messo così non ha senso.
Io ho modificato lo script per Slackware,
prima era così:
1) slackpkg mirrors 3) update gpg 5) upgrade-all
2) slackpkgplus.conf 4) update 6) Quit
Please enter your choice: 6
Thank You...
e adesso si presenta così
********************************************************
* Benvenuto! Configura slackpkg e aggiorna il Sistema. *
********************************************************
Scegli cosa fare e inserisci il numero nel rigo in basso
........................................................
1) Esegui slackpkg update 4) Seleziona un Mirror
2) Esegui slackpkg upgrade-all 5) Configura slackpkplus
3) Esegui slackpkg update gpg 6) Quit
Inserisci il numero per la tua scelta: 6
Arrivederci...
Oltre ad aver modificato il suo aspetto ho anche sostituito nano con leafpad.
lo script:
#!/bin/bash
echo "********************************************************"
echo "* Benvenuto! Configura slackpkg e aggiorna il Sistema. *"
echo "********************************************************"
echo ""
echo "Scegli cosa fare e inserisci il numero nel rigo in basso"
echo "........................................................"
echo ""
while true
do
PS3='Inserisci il numero per la tua scelta: '
options=("Esegui slackpkg update"
"Esegui slackpkg upgrade-all"
"Esegui slackpkg update gpg"
"Seleziona un Mirror"
"Configura slackpkplus"
"Quit")
select opt in "${options[@]}"
do
case $opt in
"Esegui slackpkg update")
echo "slackpkg update"
slackpkg update
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Esegui slackpkg upgrade-all")
echo "slackpkg upgrade-all"
slackpkg upgrade-all
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Esegui slackpkg update gpg")
echo "slackpkg update gpg"
slackpkg update gpg
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Seleziona un Mirror")
echo "Edita la lista dei mirrors"
leafpad /etc/slackpkg/mirrors
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Configura slackpkplus")
echo ""
echo "Edita la configurazione di slackpkgplus"
echo ""
leafpad /etc/slackpkg/slackpkgplus.conf
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Quit")
echo ""
echo ""
echo "Arrivederci..."
exit
;;
*) echo invalid option;;
esac
done
done
bello , già inserito in usr/local/bin
userò il tuo che è più elegante del mio
l'unica cosa è che con leafpad non si aprono i text quindi ho lasciato nano
ps.
ho intenzione di fare uno script slackware-post install
uno script che ti guida a configuare correttamente slackware iniziando dalla tastiera, la lingua, le mirror, sclakpkgplus, sbopkg, sbuoi e l'installazione di tutti i .SBo.tgz salvati .
dopo non ricordo dove facesti una guida per installare whiskermenu dove si compilava manualmente l'installazione
vorrei fare anche uno script che ti fa scaricare il pacchetto , entrare nella cartella e compilare ed installare il pacchetto
si può fare?
Con leafpad i testi si aprono perfettamente. E di questo sono sicuro. Nano è già presente nel sistema e invece leafpad sarebbe una dipendenza, magari per questo è meglio nano.
Comunque sia, io faccio fatica a districarmi nel mezzo di una eruzione di script. Non ne capisco la necessità, non riesco ad individuare il filo logico di questo topic. Senza accettare la discussione su di uno script, senza che questi diventi un progetto da sviluppare insieme e con l'aiuto degli altri che gusto c'è? Che possibilità c'è che in questa discussione ci si possa appassionare alla programmazione bash o di imparare qualcosa...?
Non so che dirti trigg, fai quello che vuoi. Se dovessi postare qualcosa per la quale vale la pena di farlo ne farò un fork, sempre nei limiti delle mie meno che scarsissime conoscenze e capacità in materia...
...Così se viene bene me ne prendo tutto il merito e lo propongo a P. Volkerdig, e se lui lo inserisce nella prossima distro faccio pure un sacco di soldi... :-P :D
ho fatto lo script per compilare i tar.gz
funziona ma sarebbe bello snellirlo
vale sempre la pena provare qualcosa di nuovo
sia per sbagliare che per imparare
ad esempio scrivendo questo script ho capito perfettmante come fare compilare un pacchetto senza l'aiuto di sbopkg e sbuoi
adesso so meglio come funziona la compilazione
#!/bin/bash
cd /home/tom/Desktop/builder/
echo Download sorgente:
read link
$exec wget -r -l1 -nH --cut-dirs=2 --no-parent -A.tar.gz --no-directories $link
echo Scarica SlackBuild:
read build
$exec wget -r -l1 -nH --cut-dirs=2 --no-parent -A.tar.gz --no-directories $build
ls
echo scompatta build
read build2
$exec tar -zxvf $build2
ls
echo seleziona sorgente
read sorgente2
echo seleziona cartella destinazione
read cartella
cp $sorgente2 $cartella
cd $cartella
ls
echo installa slackbuild
read slackbuild
$exec sudo sh $slackbuild
/bin/bash
exit
per lo script post installazione lo trovo comodo specialmente per chi è alle prima armi con slacware
trovo scomodo dopo 2 anni dover andare nella cartella dati per leggere i text di configurazione
così fare uno script che ti guida alla configurazione è semplificativo
così è più snello
scarica e scompatta la build
entra nella cartella build
scarica la sorgente
installa tutto
#!/bin/bash
cd /home/tom/Desktop/builder/
echo Scarica SlackBuild:
read link
$exec curl $link | tar xvz
ls
echo entra nella cartella
read cartella
cd $cartella
echo Download Sorgente:
read link2
$exec wget $link2
ls
echo installa slackbuild
$exec sudo sh $cartella.SlackBuild
exit
Rilasciata la prima versione di Slurp!
(https://www.garzantilinguistica.it/ricerca/?q=slurp)
Slurp è uno script interattivo per Slackware con il quale è possibile configurare Slackpkg, Slacpkgplus ed eseguire le operazioni di update e upgrade del sistema.
Slurp:
********************************************************
* Benvenuto in Slurp! Configura e aggiorna il Sistema. *
********************************************************
Scegli cosa fare e inserisci il numero nel rigo in basso
........................................................
1) Esegui slackpkg update 4) Seleziona un Mirror
2) Esegui slackpkg upgrade-all 5) Configura slackpkplus
3) Esegui slackpkg update gpg 6) Esci da Slurp
Inserisci il numero per la tua scelta: 6
Sei uscito da questo script. Arrivederci!
Ecco lo script:
slurp.sh
#################################################################################################################
# Questo script, da questo momento in poi denominato "Slurp", è #
# un Fork dello script proposto qui: http://www.linuxminditalia.org/index.php?topic=24542.msg267755#msg267755. #
# Slurp viene fornito senza alcuna garanzia. #
# Enjoy! #
#################################################################################################################
#!/bin/bash
echo "********************************************************"
echo "* Benvenuto in Slurp! Configura e aggiorna il Sistema. *"
echo "********************************************************"
echo ""
echo "Scegli cosa fare e inserisci il numero nel rigo in basso"
echo "........................................................"
echo ""
while true
do
PS3='Inserisci il numero per la tua scelta: '
options=("Esegui slackpkg update"
"Esegui slackpkg upgrade-all"
"Esegui slackpkg update gpg"
"Seleziona un Mirror"
"Configura slackpkplus"
"Esci da Slurp")
select opt in "${options[@]}"
do
case $opt in
"Esegui slackpkg update")
echo "slackpkg update"
slackpkg update
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Esegui slackpkg upgrade-all")
echo "slackpkg upgrade-all"
slackpkg upgrade-all
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Esegui slackpkg update gpg")
echo "slackpkg update gpg"
slackpkg update gpg
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Seleziona un Mirror")
echo "Edita la lista dei mirrors"
leafpad /etc/slackpkg/mirrors
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Configura slackpkplus")
echo ""
echo "Edita la configurazione di slackpkgplus"
echo ""
leafpad /etc/slackpkg/slackpkgplus.conf
echo "Completato"
echo "........................................................"
echo ""
break
;;
"Esci da Slurp")
echo ""
echo ""
echo "Sei uscito da questo script. Arrivederci!"
exit
;;
*) echo invalid option;;
esac
done
done
ahhhh considerando che gentoo almeno per quanto ne so ed ho cercato non ha yuotube dl-gui ho pensato di fare questo script
per poter usare comodamente yuotubedl
nel video un'esempio pratico di cio che fa lo script è ancora lontano dalla mia idea ed è iancora grezzo
https://drive.google.com/file/d/1f7PUg-lij6dPcFj1rl_8R6C5UB-e936S/view?usp=sharing (https://drive.google.com/file/d/1f7PUg-lij6dPcFj1rl_8R6C5UB-e936S/view?usp=sharing)
è ancora in fase di sviluppo
1) chiedo a chi ne sa piu di me se ci sono errori
2) devo implementare la scelta dei formati
3) inserire una progress-bar del processo
4) punto importante a fine downaload avere una scelta chiudi / inserisci nuovo link
#!/bin/bash
mkfifo /tmp/namedPipe1 # this creates named pipe, aka fifo
dialog --inputbox "This is an input box with named pipe" 40 40 2> /tmp/namedPipe1 & # to make sure the shell doesn't hang, we run redirection in background, because fifo waits for output to come out
OUTPUT="$( cat /tmp/namedPipe1 )" # release contents of pipe
# while-menu-dialog: a menu driven system information program
DIALOG_CANCEL=1
DIALOG_ESC=255
HEIGHT=0
WIDTH=0
display_result() {
dialog --title "$1" \
--no-collapse \
--msgbox "$result" 0 0
}
while true; do
exec 3>&1
selection=$(dialog \
--backtitle "MP3" \
--title "MP3" \
--clear \
--cancel-label "Exit" \
--menu "Please select:" $HEIGHT $WIDTH 4 \
"1" "MP3" \
"2" "MP4" \
"3" "BEST" \
2>&1 1>&3)
exit_status=$?
exec 3>&-
case $exit_status in
$DIALOG_CANCEL)
clear
echo "Program terminated."
exit
;;
$DIALOG_ESC)
clear
echo "Program aborted." >&2
exit 1
;;
esac
case $selection in
0 )
clear
echo "Program terminated."
;;
1 )
result=$(youtube-dl -x --audio-format mp3 --audio-quality 0 $OUTPUT)
display_result "MP3"
;;
2 )
result=$(youtube-dl --recode-video mp4 $OUTPUT)
display_result "MP4"
;;
3 )
result=$(youtube-dl -x --audio-format best --audio-quality 0 $OUTPUT)
display_result "BEST"
;;
esac
done
echo "This is the output " $OUTPUT
Citazione di: trigg il Domenica 27 Maggio 2018, 10:08:01
...ho intenzione di fare uno script slackware-post install
uno script che ti guida a configuare correttamente slackware iniziando dalla tastiera, la lingua, le mirror, sclakpkgplus, sbopkg, sbuoi e l'installazione di tutti i .SBo.tgz salvati .
dopo non ricordo dove facesti una guida per installare whiskermenu dove si compilava manualmente l'installazione
vorrei fare anche uno script che ti fa scaricare il pacchetto , entrare nella cartella e compilare ed installare il pacchetto
si può fare?
Secondo me uno script post install ha senso solo se la sua esecuzione avviene in coda all'installazione, questo significa che dovresti prima modificare la iso di installazione. In alternativa dovrebbe essere eseguito al primo avvio, un po' come mi pare che fa Zenwalk, ma sempre modificando la iso.
Siccome il post install è bene farlo al primissimo login, in modo che xfce, per esempio, crei le cartelle della home direttamente in italiano (Il layout della tastiera per il sistema è già impostata in fase di installazione, l'unica impostazione residua è la tastiera in ambiente Xfce)...
...Ha veramente senso fare uno script che si usa una volta sola e quell'unica volta complica le cose invece di semplificarle?
Uno script che scarichi e installi slackpkgplus e sbopkg e che prepari sbopkg alla prima esecuzione e poi installi con sbopkg anche sboui potrebbe essere un'idea migliore.
Creare un pacchetto installabile ti consente di mettere insieme più script che lavoreranno insieme e fare tutte quelle cose che è possibile fare quando sai in anticipo quale sarà l'esatta ubicazione di ogni file installato. E' una bella possibilità, in uno script evoluto tornerebbe parecchio utile. Magari pensaci.
Spingerti oltre con le slackbuilds ha senso se fai uno script che sia in grado di gestire le dipendenze ricorsivamente (...esiste già) e con il quale sia possibile passare delle opzioni di compilazione (...per questo ogni SlackBuild ha un file README e per questo è così importante leggerlo).
Penso che per questo ci sono già programmi di provata solidità, sarebbe sufficiente poterli richiamare dallo script.
ma no
sono certo che tutti gli utenti slackware hanno una cartella con i tar.gz
lo script è un copia incolla dei .conf delle mirror e della lingua , in maniera sisntetica
ed un copia incolla -install tar.gz
secondo steo dello script
youtube dl text menu
ho aggiunto nuovi formati e l'opzione nuovo download
questo script ha il vantaggio di mantenere il ink e quindi convertirlo in piu formati
nel video l'esempio pratico di seguito lo script
considerate che a livello amatoriale posso aver fatto degli errori anche se lo script gira
quindi ho semplificato tutto facendo in modo che possa esser letto con facilità da chi ne sa piu di me ;
invito chi è piu esperto ad individuare errori e/o eventuali migliorie
mi piacerebbe aggiungere una prgress bar del processo ma probabilmete dovrò reimostare tutto lo script
https://drive.google.com/file/d/17RjU-PwZ0b7mCsmXF_q-9BD8lW8GmNqt/view?usp=sharing (https://drive.google.com/file/d/17RjU-PwZ0b7mCsmXF_q-9BD8lW8GmNqt/view?usp=sharing)
#!/bin/bash
mkfifo /tmp/namedPipe1 # this creates named pipe, aka fifo
dialog --inputbox "This is an input box with named pipe" 40 40 2> /tmp/namedPipe1 & # to make sure the shell doesn't hang, we run redirection in background, because fifo waits for output to come out
OUTPUT="$( cat /tmp/namedPipe1 )" # release contents of pipe
# while-menu-dialog: a menu driven system information program
DIALOG_CANCEL=1
DIALOG_ESC=255
HEIGHT=0
WIDTH=0
display_result() {
dialog --title "$1" \
--no-collapse \
--msgbox "$result" 0 0
}
while true; do
exec 3>&1
selection=$(dialog \
--backtitle "YouTube DL text-menu" \
--title "YouTube DL text-menu" \
--clear \
--cancel-label "Exit" \
--menu "Please select:" $HEIGHT $WIDTH 16 \
"fast" "scarica veloce"\
"1" "MP4" \
"2" "FLV" \
"3" "OGG" \
"4" "WEBM" \
"5" "MKV" \
"6" "AVI" \
"7" "MP3" \
"8" "FLAC" \
"9" "AAC" \
"10" "M4A"\
"11" "OPUS"\
"12" "VORBIS"\
"13" "WAV"\
"14" "BEST"\
"15" "NEW DOWNALOD" \
2>&1 1>&3)
exit_status=$?
exec 3>&-
case $exit_status in
$DIALOG_CANCEL)
rm $OUTPUT
clear
echo "Program terminated."
exit
;;
$DIALOG_ESC)
rm $OUTPUT
clear
echo "Program aborted." >&2
exit 1
;;
esac
case $selection in
0 )
clear
echo "Program terminated."
;;
fast )
clear
result=$(exec youtube-dl $OUTPUT)
;;
1 )
clear
echo __________m
echo ____________p
echo ______________4
echo ________________PROCESSO IN CORSO...
result=$(exec youtube-dl --recode-video mp4 $OUTPUT)
;;
2 )
clear
echo __________f
echo ____________l
echo ______________v
echo ________________PROCESSO IN CORSO...
result=$(exec youtube-dl --recode-video flv $OUTPUT)
;;
3)
clear
echo __________o
echo ____________g
echo ______________g
echo ________________PROCESSO IN CORSO...
result=$(exec youtube-dl --recode-video ogg $OUTPUT)
;;
4 )
clear
echo __________w
echo ____________e
echo ______________b
echo ________________m
echo __________________PROCESSO IN CORSO...
result=$(exec youtube-dl --recode-video webm $OUTPUT)
;;
5)
clear
echo __________m
echo ____________k
echo ______________v
echo ________________PROCESSO IN CORSO...
result=$(exec youtube-dl --recode-video mkv $OUTPUT)
;;
6 )
clear
echo __________a
echo ____________v
echo ______________i
echo ________________PROCESSO IN CORSO...
result=$(exec youtube-dl --recode-video avi $OUTPUT)
;;
7 )
clear
echo __________m
echo ____________p
echo ______________3
echo ________________PROCESSO IN CORSO ...
result=$(youtube-dl -x --audio-format mp3 --audio-quality 0 $OUTPUT)
;;
8 )
clear
echo __________f
echo ____________l
echo ______________a
echo ________________c
echo __________________PROCESSO IN CORSO...
result=$(youtube-dl -x --audio-format flac --audio-quality 0 $OUTPUT)
;;
9 )
clear
echo __________a
echo ____________a
echo ______________c
echo ________________PROCESSO IN CORSO ...
result=$(youtube-dl -x --audio-format aac --audio-quality 0 $OUTPUT)
;;
10 )
clear
echo __________m
echo ____________4
echo ______________a
echo ________________PROCESSO IN CORSO ...
result=$(youtube-dl -x --audio-format m4a --audio-quality 0 $OUTPUT)
;;
11 )
clear
echo __________o
echo ____________p
echo ______________u
echo ________________s
echo __________________PROCESSO IN CORSO ...
result=$(youtube-dl -x --audio-format opus --audio-quality 0 $OUTPUT)
;;
12 )
clear
echo __________v
echo ____________o
echo ______________r
echo ________________b
echo __________________i
echo ____________________s
echo ______________________PROCESSO IN CORSO ...
result=$(youtube-dl -x --audio-format vorbis --audio-quality 0 $OUTPUT)
;;
13 )
clear
echo __________w
echo ____________a
echo ______________v
echo ________________PROCESSO IN CORSO ...
result=$(youtube-dl -x --audio-format wav --audio-quality 0 $OUTPUT)
;;
14 )
clear
echo __________b
echo ____________e
echo ______________s
echo ________________t
echo __________________PROCESSO IN CORSO ...
result=$(youtube-dl -x --audio-format best --audio-quality 0 $OUTPUT)
;;
15 )
result=$(rm $OUTPUT )
mkfifo /tmp/namedPipe1 # this creates named pipe, aka fifo
dialog --inputbox "This is an input box with named pipe" 40 40 2> /tmp/namedPipe1 & # to make sure the shell doesn't hang, we run redirection in background, because fifo waits for output to come out
OUTPUT="$( cat /tmp/namedPipe1 )" # release contents of pipe
;;
esac
done
nel video c'è un progetto che ho iniziato
un lanciatore di script in .py
il progetto è molto lungo e borioso
sarà un lanciatore universale per le funzioni di installazione rimozione e aggiornamento di tutti i sistemi
arch , slackware, mint e gentoo
lo so che esistono i file manger dedicati ma per me è sempre un punto di partenza e mi diverto a fare questo
forse farò in .py il tool di pulizia di sistema ma vedremo
il video
https://drive.google.com/file/d/1zH_tMNLNjmNEUtdmetJr8A2b_wKOqJPF/view?usp=sharing (https://drive.google.com/file/d/1zH_tMNLNjmNEUtdmetJr8A2b_wKOqJPF/view?usp=sharing)
ho tralasciato il progetto .py
sarebbe diventato uno studio ed un vero e proprio lavoro continuare i .py
continuerò con gli script :
il seguente è simile ai precedenti ho solo lavoato sull'aspetto con dando un tema con caratteri ascii
nel video le sue funzionalità
https://drive.google.com/file/d/1bCY2Su4_RGOAemkKSD025YfsnGKhoBEH/view?usp=sharing (https://drive.google.com/file/d/1bCY2Su4_RGOAemkKSD025YfsnGKhoBEH/view?usp=sharing)
#!/bin/bash
echo "???????????????????????????????????????????????????????????????????????????"
echo "? ?????????????????????????????????????????????????????????????? ?"
echo "? ? ? ?"
echo "? ? Scegli l'operazione da eseguire: ? ?"
echo "? ? ? ?"
echo "? ???????????PACMAN?????????? ??????????YAOURT??????????? ?"
echo "? ??[1] Cerca App ? ?[7] Cerca in Yaourt ?? ?"
echo "? ??[2] Installa App ? ?[8] Installa con Yaourt ?? ?"
echo "? ??[3] Rimuovi App ? ?[9] Rimuovi App ?? ?"
echo "? ??[4] Rimuovi App e Dip. ? ?[10]Rimuovi App e Dip. ?? ?"
echo "? ??[5] Aggiorna Sitema ? ? ?? ?"
echo "? ??[6] Aggiorna Key ? ? [0] Esci ?? ?"
echo "? ??????????????????????????? ??????????????????????????? ?"
echo "? ?????????????????????????????????????????????????????????????? ?"
echo "? ?";
echo "? * ) ?";
echo "? \` ) /( ( ( ( ( ( ( ? ";
echo "? ( )(_)))( )\ )\))( )\))( ? ";
echo "? (_(_())(()\((_)((_))\((_))\ ? ";
echo "? |_ _| ((_)(_) (()(_)(()(_) ? ";
echo "? | | | '_|| |/ _\` |/ _\` | ?";
echo "? |_| |_| |_|\__, |\__, | ?";
echo "? |___/ |___/ ?";
echo "???????????????????????????????????????????????????????????????????????????"
read selezione
case "$selezione" in
# Note variable is quoted.
"1" )
# Accept upper or lowercase input.
echo
echo "Quale Pacchetto desideri cercare ?"
read pacchetto
pacman -Ss $pacchetto
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"2" )
echo "Quale Pacchetto desideri installare ?"
read inst
sudo pacman -S $inst
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"3" )
echo "Quale Pacchetto desideri rimuovere ?"
read remv
sudo pacman -R $remv
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"4" )
echo "Quali Pacchetti desideri rimuovere ?"
read rev
sudo pacman -Rs $rev
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"5" )
echo "stai lanciando sudo pacman -Sy && sudo pacman -Syu"
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sudo pacman -Sy && sudo pacman -Syu
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"6" )
echo "sudo pacman -S archlinux-keyring && sudo pacman -Syu"
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sudo pacman -S archlinux-keyring && sudo pacman -Syu
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"7" )
# input.
echo
echo "Quale Pacchetto desideri cercare ?"
read pacchetto
yaourt -Ss $pacchetto
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"8" )
# input.
echo
echo "Quale Pacchetto desideri installare ?"
read pacchetto
yaourt -S $pacchetto
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"9" )
echo "Quale Pacchetto desideri rimuovere ?"
read emv
yaourt -R $emv
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"10" )
echo "Quale Pacchetto desideri rimuovere ?"
read rv
sudo yaourt -Rs $rv
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
sh trigg.sh
;;
"0" )
echo "Grazie per aver usato il mio Script..."
exit
;;
esac
echo
:ciao:
Scusate magari non c'entra nel post ma visto che parlate di officina script.... ;D
sto litigando con dconf per avere la sospensione a percentuale,
nel frattempo
è fattibile uno script, che duranrte la scarica della batteria ( portatile ) al 20% attivi la sospensione?
sono su mate e gnome-shell.
lo metto all'avvio e disabilito quello da gestore alimentazione( non mi cambia i parametri di percentuale)
grassie e gnao dal cuzzo :cool:
di primo acchito mi è venuto in mente uno anzi due script che possono sospender il pc in base al tempo
questo si avvia in background e dorme per 7200 secondi 2 ore (puoi variare il tempo
dopo 2 ore lancia il secondo script
#!/bin/bash
nohup command &>/dev/null &
sleep 7200
exo-open --launch TerminalEmulator sh /usr/local/bin/'script di sospensione pc'/suspend.sh
exit 0
secondo script ti avvisa che tra 30 secondi ci sarà la sospensione del pc ma che puoi annullare l'operazione premendo Control-C
#!/bin/bash
TIME_LIMIT=30
INTERVAL=1
echo
echo "Hit Control-C to exit before $TIME_LIMIT seconds."
echo
while [ "$SECONDS" -le "$TIME_LIMIT" ]
do # $SECONDS is an internal shell variable.
if [ "$SECONDS" -eq 1 ]
then
units=second
else
units=seconds
fi
echo "premi Control-C per annulare la sospensione $SECONDS $units. di 30"
sleep $INTERVAL
done
echo -e "\a" # Beep!
systemctl suspend
exit 0
puoi mettere i due script in una cartella chiamata "script di sospensione pc" in usr/local/bin
aggiungere il primo script allìavvio del pc come esecuzione automatica , dare il nome "suspend.sh" al secondo script
e vedere se ti piace l'idea del timing invece che della batteria
purtroppo non ho un portatile non posso cimentarmi con questo tipo di script
@trigg, nel primo script usi questo comando:
exo-open --launch TerminalEmulator sh /usr/local/bin/'script di sospensione pc'/suspend.sh
Considera che exo (https://docs.xfce.org/xfce/exo/start) funziona solo con XFCE, è di "proprietà" di xfce, invece @cuzzo usa Gnome e Mate.
:ciao:
grazie ma mi serve a percentuale,
come si modifica?
gnao dal cuzzo :cool:
dovrebbe e sottolineo dovrebbe essere così
quando la batteria è al 20% lancia l'altro script
#!/bin/bash
nohup command &>/dev/null &
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
if [ $battery_level -le 20 ]
then
exo-open --launch TerminalEmulator sh /usr/local/bin/'script di sospensione pc'/suspend.sh
fi
exit 0
https://unix.stackexchange.com/questions/60778/how-can-i-get-an-alert-when-my-battery-is-about-to-die-in-linux-mint (https://unix.stackexchange.com/questions/60778/how-can-i-get-an-alert-when-my-battery-is-about-to-die-in-linux-mint)
devi cambiare exo-open --launch TerminalEmulator sh con il comando del tuo terminale
puoi anche non usare l'altro script ma mi sembra brutale una sospensione immediata
Innanzitutto, grazie :)
se ho capito, il terminale in mate si lancia con
mate-terminal
quindi
#!/bin/bash
nohup command &>/dev/null &
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
if [ $battery_level -le 20 ]
then
mate-terminal -e /usr/local/bin/'script di sospensione pc'/suspend.sh
fi
exit 0
devo aggiungergi sh o -e dopo mate-terminal?
grazie e gnao dal cuzzo :cool:
Scusami te si rispondo io, se non funziona l'opzione -e, prova con -x. Si, dovresti aggiungere
sh.
tranquillo nick ^_^ anzi speravo in un'intervento
mate lìho sempre tralasciato quindi faccio più fatica a trovare i comandi
dovrebbe essere così
mate-terminal -e /usr/local/bin/'script di sospensione pc'/suspend.sh
oppure
gnome-terminal -e "bash /usr/local/bin/'script di sospensione pc'/suspend.sh"
ricordati di dare i permessi di esecuzione dello script
chmod +x nnomescript.sh
dopo dovrebbero andare ma non avendo ilporatilee non ho testato lo script della batteria
Provo, :)
gnao dal cuzzo :cool:
(https://i.imgur.com/C4YWV6s.png)
questo fa tutto con uno script
esce il messaggio in alto a destra
#!/bin/bash
nohup command &>/dev/null &
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
if [ $battery_level -le 20 ]
then
notify-send "Battery low" "PREMI Control_c
per annullare
la sospensione
del portatile
${battery_level}%!"
fi
TIME_LIMIT=30
INTERVAL=1
echo
echo "Hit Control-C to exit before $TIME_LIMIT seconds."
echo
while [ "$SECONDS" -le "$TIME_LIMIT" ]
do # $SECONDS is an internal shell variable.
if [ "$SECONDS" -eq 1 ]
then
units=second
else
units=seconds
fi
echo "premi Control-C per annulare la sospensione $SECONDS $units. di 30"
sleep $INTERVAL
done
echo -e "\a" # Beep!
systemctl suspend
exit 0
dovrebbe andare, ma non posso testarlo non avendo il portatile
se non hai cambiato al riguardo del rilevamento batteria, non va.
permessi apposto poichè funziona quando accendi il pc e la batteria è gia sotto il 20%, con alimentazione, parte subito il conteggio e la sospensione.
penso bisognerà specificare la percentuale mentre si sta scaricando e non sotto carica.
carino questo con la notifica :ok:
grazie trigg
gnao dal cuzzo :cool:
ma funziona ?
cioè con la batteria sotto al 20% ti chiede se sospendere il pc o di annullare il processo ; giusto?
quello che vuoi fare è anche di dire al pc :
se il pc è collegato non fare niente
giusto?
se ho capito bene è una cosa che si può fare , solo che non ho il portatile e non posso testare il corretto funzionamento dello script
dovrò essere come Beethoween che scriveva musica senza alscoltarla :grin:
vabbè ci provo e vediamo come va :'(
allora,
il suo lavoro, in fase di scaricamento della batteria , di far scattare la sospensione quando si arriva al 20% non lo fa.
si aziona ( tutto come impostato :ok: ) solo quando avvio e la batteria è già sotto il 20% ( anche se alimentato ).
come se il suo lavoro fosse di controllare la percentuale solo all'avvio del sistema.
come è andata con il mio itagliano? ;D
purtroppo io ho il portatile ma sono negato, te sei un mago senza :D
non diventare matto, grassie.
gnao dal cuzzo :cool:
prova questo
devi solo cambiare il comando del terminale con quello di mate
chiama lo script checkbattery.sh e rendilo eseguibile (spostalo in /usr/local/bin/'script di sospensione pc'/)
#!/bin/bash
DIR="/sys/class/power_supply/BAT0"
STATUS=$(cat "$DIR/status")
if [ "$STATUS" == "Discharging" ]
then
for PREFIX in "charge" "energy"
do
if [ -f "$DIR/${PREFIX}_now" ] && [ -f "$DIR/${PREFIX}_full" ]
then
REMAIN=$(cat "$DIR/${PREFIX}_now")
FULL=$(cat "$DIR/${PREFIX}_full")
PRCT=$((100 * $REMAIN / $FULL))
if [ $PRCT -le 21 ]
then
exo-open --launch TerminalEmulator sh /usr/local/bin/'script di sospensione pc'/suspend.sh
fi
break
fi
done
fi
devi aggiungere lo script in crontab
0 * * * * /usr/local/bin/'script di sospensione pc'/checkbattery.sh['/code]
dovrebbe andare bene
ogni ora ti controllerà lo stato della batteria se sarà sotto il 21% ti lancerà lo script di sopsensione/annullamento
oppure prova questo
https://www.pcsuggest.com/show-notification-play-sound-low-battery-linux/ (https://www.pcsuggest.com/show-notification-play-sound-low-battery-linux/)
https://drive.google.com/file/d/1v0K-QqYgh6g9ci5LzGPpfgLft6l3CfVn/view?usp=sharing (https://drive.google.com/file/d/1v0K-QqYgh6g9ci5LzGPpfgLft6l3CfVn/view?usp=sharing)
#!/bin/bash
whiptail --title "Benvenuti" --msgbox "Benvenuti nello script d'installazione di Yaourt per Arch-Linux e derivate. Clicca Ok per continuare." 10 60
if (whiptail --title "Hai installato le dipendenze di Yaourt?" --yesno "Scegli SI se hai le dipendenze No per installarle." 10 60) then
whiptail --title "Installazione di package-query" --msgbox "Permetterà a yaourt di lavorare correttamente Clicca Ok per continuare." 10 60
else
echo
echo "stai per lanciare sudo pacman -S --needed base-devel git wget yajl
alla domanda Digita una selezione (default=tutto): premi INVIO"
echo
echo "premi un tasto per continuare"
read -n1
sudo pacman -S --needed base-devel git wget yajl
fi
{
for ((i = 0 ; i <= 100 ; i+=20)); do
sleep 1
echo $i
done
} | whiptail --gauge "Attendere il Processo" 6 60 0
echo "download pacchetto"
git clone https://aur.archlinux.org/package-query.git
clear
echo "stai per spostarti nella cartella scaricata con cd package-query/"
echo
echo "premi un tasto per continuare"
read -n1
cd package-query/
echo "stai per installare package-query con makepkg -si"
echo
echo "premi un tasto per continuare"
read -n1
makepkg -si
{
for ((i = 0 ; i <= 100 ; i+=20)); do
sleep 1
echo $i
done
} | whiptail --gauge "Attendere il Processo" 6 60 0
cd ..
echo "download pacchetto"
git clone https://aur.archlinux.org/yaourt.git
clear
echo "stai per spostarti nella cartella scaricata con cd yaourt/"
echo
echo "premi un tasto per continuare"
read -n1
cd yaourt/
echo "stai per installare yaourt con makepkg -si"
echo
echo "premi un tasto per continuare"
read -n1
makepkg -si
clear
echo "stai per per rimuover yaourt e package-query scaricati e creati"
echo
echo "premi un tasto per continuare"
read -n1
cd ..
sudo rm -dR yaourt/ package-query/
exit
a questo punto basterà o usare il mio script trigg
http://www.linuxminditalia.org/index.php?topic=24542.msg267923#msg267923 (http://www.linuxminditalia.org/index.php?topic=24542.msg267923#msg267923)
oppure usare il festore grafico installandolo con
yaourt -S pamac-aur
ho implementato lo script di installazione di yaourt
aggiungendo anche la possibilità di installare alcuni pacchetti utili presi da ubuntu studio , creato per avere uno script-book dopo l'installazione di arch e derivate
https://drive.google.com/file/d/1GGZ8bm3xRp-Wh76bs19ekqKIpxon-uD9/view?usp=sharing (https://drive.google.com/file/d/1GGZ8bm3xRp-Wh76bs19ekqKIpxon-uD9/view?usp=sharing)
#!/bin/bash
whiptail --title "Benvenuti" --msgbox "Benvenuti nello script d'installazione di Yaourt per Arch-Linux e derivate. Clicca Ok per continuare." 10 60
if (whiptail --title "Hai installato le dipendenze di Yaourt?" --yesno "Scegli SI se hai le dipendenze No per installarle." 10 60) then
whiptail --title "Installazione di package-query" --msgbox "Permetterà a yaourt di lavorare correttamente Clicca Ok per continuare." 10 60
else
echo
echo "stai per lanciare sudo pacman -S --needed base-devel git wget yajl
alla domanda Digita una selezione (default=tutto): premi INVIO"
echo
echo "premi un tasto per continuare"
read -n1
sudo pacman -S --needed base-devel git wget yajl
fi
{
for ((i = 0 ; i <= 100 ; i+=20)); do
sleep 1
echo $i
done
} | whiptail --gauge "Attendere il Processo" 6 60 0
echo "download pacchetto"
git clone https://aur.archlinux.org/package-query.git
clear
echo "stai per spostarti nella cartella scaricata con cd package-query/"
echo
echo "premi un tasto per continuare"
read -n1
cd package-query/
echo "stai per installare package-query con makepkg -si"
echo
echo "premi un tasto per continuare"
read -n1
makepkg -si
{
for ((i = 0 ; i <= 100 ; i+=20)); do
sleep 1
echo $i
done
} | whiptail --gauge "Attendere il Processo" 6 60 0
cd ..
echo "download pacchetto"
git clone https://aur.archlinux.org/yaourt.git
clear
echo "stai per spostarti nella cartella scaricata con cd yaourt/"
echo
echo "premi un tasto per continuare"
read -n1
cd yaourt/
echo "stai per installare yaourt con makepkg -si"
echo
echo "premi un tasto per continuare"
read -n1
makepkg -si
clear
echo "stai per per rimuovere yaourt e package-query scaricati e creati"
echo
echo "premi un tasto per continuare"
read -n1
cd ..
sudo rm -dR yaourt/ package-query/
echo "stai per aggiornare il sistema"
echo
echo "premi un tasto per continuare"
read -n1
sudo pacman -Sy && sudo pacman -Syu
clear
#!/bin/bash
audio=$(whiptail --title "AUDIO" --checklist \
"Vuoi installare questi software audio ?
Altrimenti clicca ANNULLA e passa alla Grafica " 15 70 7 \
"jack" "server audio e midi con bassa latenza" OFF \
"ardour" "workstation audio digitale" OFF \
"audacity" "audio Wave Editor" OFF \
"qtractor" "DAW midi" OFF \
"hydrogen" "sequenziatore di batteria" OFF \
"yoshimi" "sintetizzatore" OFF \
"guitarix2" "simulatori di amplificatori per chitarra" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $audio
clear
echo
echo "premi un tasto per continuare"
read -n1
grafica=$(whiptail --title "GRAFICA" --checklist \
"Vuoi installare questi software per la grafica ?
Altrimenti clicca ANNULLA e passa ai Video " 15 70 7 \
"blender" "suite di creazione di contenuti 3D completa" OFF \
"inkscape" "editor di grafica vettoriale" OFF \
"gimp" "il mio preferito" OFF \
"mypaint" "strumento di pittura digitale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $grafica
clear
echo
echo "premi un tasto per continuare"
read -n1
video=$(whiptail --title "VIDEO" --checklist \
"Vuoi installare questi software per video ?
Altrimenti clicca ANNULLA e passa a Fotografia " 15 70 7 \
"openshot" "editor di video per Linux" OFF \
"simplescreenrecorder" "screen recorder per Linux" OFF \
"ffmpeg" "framework multimediale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $video
clear
echo
echo "premi un tasto per continuare"
read -n1
foto=$(whiptail --title "FOTOGRAFIA" --checklist \
"Vuoi installare questi software per Fotografie ?
Altrimenti clicca ANNULLA e passa a Pubblicazione " 15 70 7 \
"darktable" "lavoro fotografico e sviluppatore RAW" OFF \
"shotwell" " organizza la tua libreria di foto" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $foto
clear
echo
echo "premi un tasto per continuare"
read -n1
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else ###########################
grafica=$(whiptail --title "GRAFICA" --checklist \
"Vuoi installare questi software per la grafica ?
Altrimenti clicca ANNULLA e passa ai Video " 15 70 7 \
"blender" "suite di creazione di contenuti 3D completa" OFF \
"inkscape" "editor di grafica vettoriale" OFF \
"gimp" "il mio preferito" OFF \
"mypaint" "strumento di pittura digitale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $grafica
clear
echo
echo "premi un tasto per continuare"
read -n1
video=$(whiptail --title "VIDEO" --checklist \
"Vuoi installare questi software per video ?
Altrimenti clicca ANNULLA e passa a Fotografia " 15 70 7 \
"openshot" "editor di video per Linux" OFF \
"simplescreenrecorder" "screen recorder per Linux" OFF \
"ffmpeg" "framework multimediale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $video
clear
echo
echo "premi un tasto per continuare"
read -n1
foto=$(whiptail --title "FOTOGRAFIA" --checklist \
"Vuoi installare questi software per Fotografie ?
Altrimenti clicca ANNULLA e passa a Pubblicazione " 15 70 7 \
"darktable" "lavoro fotografico e sviluppatore RAW" OFF \
"shotwell" " organizza la tua libreria di foto" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $foto
clear
echo
echo "premi un tasto per continuare"
read -n1
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else ###################
video=$(whiptail --title "VIDEO" --checklist \
"Vuoi installare questi software per video ?
Altrimenti clicca ANNULLA e passa a Fotografia " 15 70 7 \
"openshot" "editor di video per Linux" OFF \
"simplescreenrecorder" "screen recorder per Linux" OFF \
"ffmpeg" "framework multimediale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $video
clear
echo
echo "premi un tasto per continuare"
read -n1
foto=$(whiptail --title "FOTOGRAFIA" --checklist \
"Vuoi installare questi software per Fotografie ?
Altrimenti clicca ANNULLA e passa a Pubblicazione " 15 70 7 \
"darktable" "lavoro fotografico e sviluppatore RAW" OFF \
"shotwell" " organizza la tua libreria di foto" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $foto
clear
echo
echo "premi un tasto per continuare"
read -n1
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else ##################
foto=$(whiptail --title "FOTOGRAFIA" --checklist \
"Vuoi installare questi software per Fotografie ?
Altrimenti clicca ANNULLA e passa a Pubblicazione " 15 70 7 \
"darktable" "lavoro fotografico e sviluppatore RAW" OFF \
"shotwell" " organizza la tua libreria di foto" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $foto
clear
echo
echo "premi un tasto per continuare"
read -n1
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else #####################
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else ########################
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exo-open --launch TerminalEmulator yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
else ##########################
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
exit
Ciao trigg,
se usi la formula "exo-open..." leghi indissolubilmente lo script alla presenza di Xfce
(http://i.imgur.com/CAMZppT.png)
Quindi chi non ha Xfce non può usare il tuo script.
Io ultimamente ho scoperto le meraviglie di XTerm (onnipresente su Linux): https://www.x.org/archive/X11R6.7.0/doc/xterm.1.html
Quello qui sotto è il tuo script, ma ho sotituito tutte le stringhe con "exo ..." con "xterm -e".
#!/bin/bash
whiptail --title "Benvenuti" --msgbox "Benvenuti nello script d'installazione di Yaourt per Arch-Linux e derivate. Clicca Ok per continuare." 10 60
if (whiptail --title "Hai installato le dipendenze di Yaourt?" --yesno "Scegli SI se hai le dipendenze No per installarle." 10 60) then
whiptail --title "Installazione di package-query" --msgbox "Permetterà a yaourt di lavorare correttamente Clicca Ok per continuare." 10 60
else
echo
echo "stai per lanciare sudo pacman -S --needed base-devel git wget yajl
alla domanda Digita una selezione (default=tutto): premi INVIO"
echo
echo "premi un tasto per continuare"
read -n1
sudo pacman -S --needed base-devel git wget yajl
fi
{
for ((i = 0 ; i <= 100 ; i+=20)); do
sleep 1
echo $i
done
} | whiptail --gauge "Attendere il Processo" 6 60 0
echo "download pacchetto"
git clone https://aur.archlinux.org/package-query.git
clear
echo "stai per spostarti nella cartella scaricata con cd package-query/"
echo
echo "premi un tasto per continuare"
read -n1
cd package-query/
echo "stai per installare package-query con makepkg -si"
echo
echo "premi un tasto per continuare"
read -n1
makepkg -si
{
for ((i = 0 ; i <= 100 ; i+=20)); do
sleep 1
echo $i
done
} | whiptail --gauge "Attendere il Processo" 6 60 0
cd ..
echo "download pacchetto"
git clone https://aur.archlinux.org/yaourt.git
clear
echo "stai per spostarti nella cartella scaricata con cd yaourt/"
echo
echo "premi un tasto per continuare"
read -n1
cd yaourt/
echo "stai per installare yaourt con makepkg -si"
echo
echo "premi un tasto per continuare"
read -n1
makepkg -si
clear
echo "stai per per rimuovere yaourt e package-query scaricati e creati"
echo
echo "premi un tasto per continuare"
read -n1
cd ..
sudo rm -dR yaourt/ package-query/
echo "stai per aggiornare il sistema"
echo
echo "premi un tasto per continuare"
read -n1
sudo pacman -Sy && sudo pacman -Syu
clear
#!/bin/bash
audio=$(whiptail --title "AUDIO" --checklist \
"Vuoi installare questi software audio ?
Altrimenti clicca ANNULLA e passa alla Grafica " 15 70 7 \
"jack" "server audio e midi con bassa latenza" OFF \
"ardour" "workstation audio digitale" OFF \
"audacity" "audio Wave Editor" OFF \
"qtractor" "DAW midi" OFF \
"hydrogen" "sequenziatore di batteria" OFF \
"yoshimi" "sintetizzatore" OFF \
"guitarix2" "simulatori di amplificatori per chitarra" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $audio
clear
echo
echo "premi un tasto per continuare"
read -n1
grafica=$(whiptail --title "GRAFICA" --checklist \
"Vuoi installare questi software per la grafica ?
Altrimenti clicca ANNULLA e passa ai Video " 15 70 7 \
"blender" "suite di creazione di contenuti 3D completa" OFF \
"inkscape" "editor di grafica vettoriale" OFF \
"gimp" "il mio preferito" OFF \
"mypaint" "strumento di pittura digitale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $grafica
clear
echo
echo "premi un tasto per continuare"
read -n1
video=$(whiptail --title "VIDEO" --checklist \
"Vuoi installare questi software per video ?
Altrimenti clicca ANNULLA e passa a Fotografia " 15 70 7 \
"openshot" "editor di video per Linux" OFF \
"simplescreenrecorder" "screen recorder per Linux" OFF \
"ffmpeg" "framework multimediale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $video
clear
echo
echo "premi un tasto per continuare"
read -n1
foto=$(whiptail --title "FOTOGRAFIA" --checklist \
"Vuoi installare questi software per Fotografie ?
Altrimenti clicca ANNULLA e passa a Pubblicazione " 15 70 7 \
"darktable" "lavoro fotografico e sviluppatore RAW" OFF \
"shotwell" " organizza la tua libreria di foto" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $foto
clear
echo
echo "premi un tasto per continuare"
read -n1
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
exterm -e yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else ###########################
grafica=$(whiptail --title "GRAFICA" --checklist \
"Vuoi installare questi software per la grafica ?
Altrimenti clicca ANNULLA e passa ai Video " 15 70 7 \
"blender" "suite di creazione di contenuti 3D completa" OFF \
"inkscape" "editor di grafica vettoriale" OFF \
"gimp" "il mio preferito" OFF \
"mypaint" "strumento di pittura digitale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $grafica
clear
echo
echo "premi un tasto per continuare"
read -n1
video=$(whiptail --title "VIDEO" --checklist \
"Vuoi installare questi software per video ?
Altrimenti clicca ANNULLA e passa a Fotografia " 15 70 7 \
"openshot" "editor di video per Linux" OFF \
"simplescreenrecorder" "screen recorder per Linux" OFF \
"ffmpeg" "framework multimediale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $video
clear
echo
echo "premi un tasto per continuare"
read -n1
foto=$(whiptail --title "FOTOGRAFIA" --checklist \
"Vuoi installare questi software per Fotografie ?
Altrimenti clicca ANNULLA e passa a Pubblicazione " 15 70 7 \
"darktable" "lavoro fotografico e sviluppatore RAW" OFF \
"shotwell" " organizza la tua libreria di foto" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $foto
clear
echo
echo "premi un tasto per continuare"
read -n1
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else ###################
video=$(whiptail --title "VIDEO" --checklist \
"Vuoi installare questi software per video ?
Altrimenti clicca ANNULLA e passa a Fotografia " 15 70 7 \
"openshot" "editor di video per Linux" OFF \
"simplescreenrecorder" "screen recorder per Linux" OFF \
"ffmpeg" "framework multimediale" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $video
clear
echo
echo "premi un tasto per continuare"
read -n1
foto=$(whiptail --title "FOTOGRAFIA" --checklist \
"Vuoi installare questi software per Fotografie ?
Altrimenti clicca ANNULLA e passa a Pubblicazione " 15 70 7 \
"darktable" "lavoro fotografico e sviluppatore RAW" OFF \
"shotwell" " organizza la tua libreria di foto" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $foto
clear
echo
echo "premi un tasto per continuare"
read -n1
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else ##################
foto=$(whiptail --title "FOTOGRAFIA" --checklist \
"Vuoi installare questi software per Fotografie ?
Altrimenti clicca ANNULLA e passa a Pubblicazione " 15 70 7 \
"darktable" "lavoro fotografico e sviluppatore RAW" OFF \
"shotwell" " organizza la tua libreria di foto" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $foto
clear
echo
echo "premi un tasto per continuare"
read -n1
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else #####################
pub=$(whiptail --title "PUBBLICAZIONE" --checklist \
"Vuoi installare questi software per la Pubblicazione ?
Altrimenti clicca ANNULLA e passa a Yaourt " 15 70 7 \
"calibre" "ebook management" OFF \
"libreoffice-fresh" "strumento per ufficio" OFF \
"libreoffice-fresh-it" "pacchetto lingua italiana" OFF \
"leafpad" "il mio preferito" OFF \
"scribus" "crea PDF professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e sudo pacman -S $pub
clear
echo
echo "premi un tasto per continuare"
read -n1
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
else ########################
yart=$(whiptail --title "Pacchetti indispensabili da YAOURT" --checklist \
"Vuoi installare questi software da Yaourt?
Altrimenti clicca ANNULLA e passa alla finestra successiva " 15 70 7 \
"pamac-aur" "gestore dei pacchetti" OFF \
"mintstick" "scrive e formatta usb" OFF \
"ntfs" "file system" OFF \
"rakarrack" "simulatore di amplificatori per chitarra" OFF \
"dvdstyler" "crea DVD professionali" OFF 3>&1 1>&2 2>&3 )
exitstatus=$?
if [ $exitstatus = 0 ]; then
xterm -e yaourt -S $yart
clear
echo
echo "premi un tasto per continuare"
read -n1
else ##########################
whiptail --title "Trigg Ringrazia" --msgbox "Grazie per aver usato il mio script Ok per finire." 10 60
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
exit
Quello che si può fare con xterm è veramente tanta roba,
Solo come esempio, guarda la stringa che utilizzo per lanciare "Slurp!":
xterm -geometry 80x28+30+200 -sb -rightbar -font -*-fixed-medium-r-*-*-20-*-*-*-*-*-iso8859-* -bg darkgrey -T Slurp! -hold -e bash /opt/Slurp/script/slurp-0.0.5.sh
Qui sono impostati: dimensione della finestra, barra di scorrimento (a destra), dimensione del font, colore di sfondo,ttitolo della finestra, mantieni la finestra aperta (-hold) e in ultimo execute (-e). ...Uno spettacolo! ;)
si lo so nick
per cambiare lo script basta aprire l'editor di testo e fare
cerca e sostituisci
cerca - expo etc etc
sostituisci con
"il comando del terminale"
con xterm provai qualche giorno fa , mi dava l'output che funziona solo da usr/bin
invece sono solito mettere gli script in /usr/local/bin
per evitare intoppi e sono tanti :( mentre scrivo preferisco usare il comadno di xfce , se qualcuno vuole usare konsole o gnome deve solo fare rova e sostituisci con l'editor di testo
;D
Citazione di: trigg il Martedì 05 Giugno 2018, 22:41:23
...per cambiare lo script basta aprire l'editor di testo e fare
cerca e sostituisci
cerca - expo etc etc
sostituisci con
"il comando del terminale"...
Si, non l'avevo fatto a mano... :uhuh: :grin:
Va bene, ma a meno che non li fai solo per te stesso è meglio specificarle queste cose: non dare per scontato che tutti si accorgano del perchè a loro lo script non funziona, e neanche che sappiano come aggiustarlo.
In ultimo, non è una legge divina che gli script debbano stare in /usr/local/bin, io lo tengo in /opt e xterm funziona perfettamente, come tutto lo script... Ma, script tuo... ;D
P.S.
Esistono anche i link, lo metti dove vuoi e crei il link in /usr/bin (solitamente tutti i programmi che vanno in /opt lo fanno, tranne Slurp che ha il suo lanciatore... ;D)
questa è la versione definitiva di TSF terminal-software-manager
a differenza del primo dove se si sbagliava a digiatare usciva
questa versione oltre a non richiamare .sh perchè è in loop
quando si sbaglia a digitare non esce
[embed=425,349]<iframe width="560" height="315" src="https://www.youtube.com/embed/QNdMma60RfE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>[/embed]
#!/bin/bash
# ----------------------------------
RED='\033[0;41;30m'
STD='\033[0;0;39m'
# ----------------------------------
pause(){
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
}
cerca(){
clear
echo "Quale Pacchetto desideri cercare?"
read pacchetto
pacman -Ss $pacchetto
pause
}
installa(){
clear
echo "Quale Pacchetto desideri installare?"
read inst
sudo pacman -S $inst
pause
}
rimuovi(){
clear
echo "Quale Pacchetto desideri rimuovere?"
read rev
sudo pacman -R $rev
pause
}
rimuovidp(){
clear
echo "Quali Pacchetti desideri rimuovere?"
read re
sudo pacman -Rs $re
pause
}
aggsys(){
clear
echo "stai lanciando sudo pacman -Sy && sudo pacman -Syu"
sudo pacman -Sy && sudo pacman -Syu
pause
}
key(){
clear
echo "stai lanciando sudo pacman -S archlinux-keyring && sudo pacman -Syu"
sudo pacman -S archlinux-keyring && sudo pacman -Syu
pause
}
cery(){
clear
echo "Quale Pacchetto desideri cercare?"
read pacc
yaourt -Ss $pacc
pause
}
instally(){
clear
echo "Quale Pacchetto desideri installare?"
read ins
yaourt -S $ins
pause
}
quit(){
clear
echo "Grazie"
sleep 1
echo " per"
sleep 1
echo " aver"
sleep 1
echo " usato"
sleep 1
echo " il mio Script"
sleep 1
echo " by Trigg"
sleep 2
clear
exit 0
pause
}
show_menus() {
clear
echo "???????????????????????????????????????????????????????????????????????????"
echo "? ?????????????????????????????????????????????????????????????? ?"
echo "? ? ? ?"
echo "? ? Scegli l'operazione da eseguire: ? ?"
echo "? ? ? ?"
echo "? ???????????PACMAN?????????? ??????????YAOURT??????????? ?"
echo "? ??[1] Cerca App ? ?[7] Cerca in Yaourt ?? ?"
echo "? ??[2] Installa App ? ?[8] Installa con Yaourt ?? ?"
echo "? ??[3] Rimuovi App ? ? ?? ?"
echo "? ??[4] Rimuovi App e Dip. ? ? ?? ?"
echo "? ??[5] Aggiorna Sitema ? ? ?? ?"
echo "? ??[6] Aggiorna Key ? ? [0] Esci ?? ?"
echo "? ??????????????????????????? ??????????????????????????? ?"
echo "? ?????????????????????????????????????????????????????????????? ?"
echo "? ?";
echo "? * ) ?";
echo "? \` ) /( ( ( ( ( ( ( ?";
echo "? ( )(_)))( )\ )\))( )\))( ? ";
echo "? (_(_())(()\((_)((_))\((_))\ ? ";
echo "? |_ _| ((_)(_) (()(_)(()(_) ? ";
echo "? | | | '_|| |/ _\` |/ _\` | ?";
echo "? |_| |_| |_|\__, |\__, | ?";
echo "? |___/ |___/ ?";
echo "???????????????????????????????????????????????????????????????????????????"
}
read_options(){
local choice
read -p "Scegli la tua operazione[ 0 - 8] " scegli
case $scegli in
1) cerca ;;
2) installa ;;
3) rimuovi ;;
4) rimuovidp ;;
5) aggsys ;;
6) key ;;
7) cery ;;
8) instally ;;
0) quit;;
*) echo -e "${RED}Error...${STD}" && sleep 2
esac
}
# ----------------------------------------------
trap '' SIGINT SIGQUIT SIGTSTP
# -----------------------------------
while true
do
show_menus
read_options
done
https://drive.google.com/file/d/1mrJBKAw_KwyHqVjGd8zQz-4ugAuxcN3I/view?usp=sharing (https://drive.google.com/file/d/1mrJBKAw_KwyHqVjGd8zQz-4ugAuxcN3I/view?usp=sharing)
#!/bin/bash
#EDITOR=vim
#PASSWD=/etc/passwd
RED='\033[0;41;30m'
STD='\033[0;0;39m'
GREEN='\033[1;32;3m'
# ----------------------------------
pause(){
echo " ___ ___ ___ __ __ __ _ _ _ _ ____ __ ___ ____ __ ";
echo "( ,\( ,) ( _)( \/ )( ) ( )( )( \( ) (_ _)( ) / __)(_ _)/ \ ";
echo " ) _/ ) \ ) _) ) ( )( )()( ) ( )( /__\ \__ \ )( ( () )";
echo "(_) (_)\_)(___)(_/\/\_)(__) \__/ (_)\_) (__)(_)(_)(___/ (__) \__/ ";
echo " ___ ___ ___ __ __ _ _ ____ __ _ _ _ _ __ ___ ___ ";
echo "( ,\( _)( ,) / _)/ \( \( )(_ _)( )( \( )( )( )( ) ( ,) ( _)";
echo " ) _/ ) _) ) \ ( (_( () )) ( )( )( ) ( )()( /__\ ) \ ) _)";
echo "(_) (___)(_)\_) \__)\__/(_)\_) (__) (__)(_)\_) \__/(_)(_)(_)\_)(___)";
read -n1
}
cerca(){
clear
echo "Quale Pacchetto desideri cercare ?"
read pacchetto
apt-cache search $pacchetto
pause
}
installa(){
clear
echo "Quale Pacchetto desideri installare ?"
read inst
sudo apt-get install $inst
pause
}
rimuovi(){
clear
echo "Quale Pacchetto desideri rimuovere ?"
read rev
sudo apt-get remove $rev
pause
}
purge(){
clear
echo "Quali Pacchetti desideri rimuovere ?"
read re
sudo apt-get purge $re
pause
}
aggsys(){
clear
echo "stai lanciando sudo apt-get update && sudo apt-get upgrade -y"
sudo apt-get update && sudo apt-get upgrade -y
pause
}
apt(){
clear
echo "Pulizia della cache di apt eseguita"
sudo apt-get clean
pause
}
obs(){
clear
echo "Pulizia di programmi-dipendenze non più necessarie completata"
if [ -n "$LIB" ]
then
echo "Programmi installati come dipendenze non più necessarie"
echo $LIB
sudo apt-get autoremove -y
echo "Eliminati!"
sleep 2
else
echo "Non ci sono programmi installati come dipendenze da rimuovere!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
pause
}
mini(){
clear
echo "Pulizia della cache delle miniature terminata"
rm -fr $HOME/.cache/thumbnails/fails/*
rm -fr $HOME/.cache/thumbnails/large/*
rm -fr $HOME/.cache/thumbnails/normal/*
pause
}
firefox(){
clear
which firefox &> /dev/null # Controllo la presenza di Firefox
if [ "$?" == "0" ]
then
DIR="$HOME/.cache/mozilla/firefox/"
echo -e "* Pulizia della cache di Firefox *"
if [ -d "$DIR" ]
then
for I in $(ls $DIR)
do
spazio_firefox=$(du -sh $DIR/$I/ | cut -d "/" -f1)
PROFILO=$(echo "$I" | cut -d "." -f2)
echo "La cache del profilo \"$PROFILO\" è di $spazio_firefox"
echo -e "Cancellare?\n(premi s per sì o un altro tasto per no)"
read -s -n1
if [ "$REPLY" == "s" -o "$REPLY" == "S" ]
then
echo -e "Attendere, sto cancellando."
sleep 1
rm -fr $DIR/$I/*
echo -e 'Fatto!'
sleep 2
else
echo
fi
done
echo -e "* Pulizia della cache di Firefox *"
echo -e "La cache di Firefox è vuota!"
fi
else
echo -e "* Pulizia della cache di Firefox *"
echo -e "Firefox non risulta installato!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
pause
}
chromium(){
clear
which chromium-browser &> /dev/null
if [[ "$?" == "0" ]]
then
spazio_chrome=$(du -sh $HOME/.cache/chromium/Default/Cache/ | cut -d "/" -f1)
echo -e "* Pulizia della cache di Chromium *"
if [ -n "$spazio_chrome" ]
then
echo "La cache è di $spazio_chrome"
echo -e "Attendere, sto cancellando."
sleep 1
rm -fr $HOME/.cache/chromium/Default/Cache/*
echo 'Fatto'
sleep 2
else
echo "La cache di Chromium è vuota!"
sleep 2
fi
else
echo -e "* Pulizia della cache di Chromium *"
echo -e "Chromium non risulta installato!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
pause
}
kernel(){
clear
echo -e "* Pulizia dei vecchi kernel *"
ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g' | sort -Vr | sed -e '1,2d' > /tmp/kernelList
kernelList=$(ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g' | sort -Vr | sed -e '1,2d')
if [ "$kernelList" != "" ]
then
echo 'Saranno rimossi questi kernel (compreso i loro header):'
cat /tmp/kernelList
echo 'Kernel attuale in uso:'
uname -r
for l in $(cat /tmp/kernelList)
do
sudo apt-get remove --purge -y $l
done
#questo rimuove i header:
ls /usr/src |grep headers | sort -Vr |sed -e '1,4d' > /tmp/headerList
for l in $(cat /tmp/headerList)
do
sudo apt-get remove --purge -y $l
done
sudo rm -f /tmp/headerlist
sudo rm -f /tmp/kernelList
sudo update-grub
echo 'Sono rimasti installati questi due kernel:'
ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g'
echo 'Headers installati:'
ls /usr/src |grep headers
else
echo "Non ci sono kernel da rimuovere!"
fi
sleep 2
if [ "$ALL" == "Y" ]
then
return
fi
pause
}
configurazioni(){
clear
LIB=$(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
echo -e "* Pulizia configurazioni inutilizzate *"
if [ -n "$LIB" ]
then
echo 'Le eventuali configurazioni inutilizzate sono:'
echo $LIB
echo -e "Cancellare?\n(premi s per sì o un altro tasto per no)"
read -sn 1
if [ "$REPLY" = "s" -o "$REPLY" = "S" ]
then
sudo dpkg --purge $(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
echo "Cancellate!"
fi
else
echo "Non ci sono configurazioni inutilizzate da rimuovere!"
sleep 2
fi
pause
}
completa(){
LIB=$(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
echo -e "* Pulizia configurazioni inutilizzate *"
if [ -n "$LIB" ]
then
echo 'Le eventuali configurazioni inutilizzate sono:'
echo $LIB
echo -e "Cancellare?\n(premi s per sì o un altro tasto per no)"
read -sn 1
if [ "$REPLY" = "s" -o "$REPLY" = "S" ]
then
sudo dpkg --purge $(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
echo "Cancellate!"
fi
else
echo "Non ci sono configurazioni inutilizzate da rimuovere!"
sleep 2
fi
pause
}
show_menus() {
clear
echo -e "${GREEN} ????????????????????????????????????????????????????????????????????????????? "
echo -e "${GREEN} ??????????????LINUX_MINT???????????? MMMMMMMMMMMMMMMMMMMMMMMMMmds+. ? "
echo -e "${GREEN} ? [1] Cerca App ? MMm----::-://////////////oymNMd+ ? "
echo -e "${GREEN} ? [2] Installa App ? MMd /++ -sNMd: ? "
echo -e "${GREEN} ? [3] Rimuovi App ? MMNso/' dMM '.::-. .-::.' .hMN: ? "
echo -e "${GREEN} ? [4] Purge ? ddddMMh dMM :hNMNMNhNMNMNh: 'NMm ? "
echo -e "${GREEN} ? [5] Aggiorna Sitema ? NMm dMM .NMN/-+MMM+-/NMN' dMM ? "
echo -e "${GREEN} ? [6] Pulizia di Apt ? NMm dMM -MMm 'MMM dMM. dMM ? "
echo -e "${GREEN} ? [7] Elimina Dip. obsolete ? NMm dMM -MMm 'MMM dMM. dMM ? "
echo -e "${GREEN} ? [8] Pulizia cache min.Sys. ? NMm dMM .mmd 'mmm yMM. dMM ? "
echo -e "${GREEN} ? [9] Pulizia cache Firefox ? NMm dMM' ..' ... ydm. dMM ? "
echo -e "${GREEN} ? [10] Pulizia cache Chromium ? hMM- +MMd/-------...-:sdds dMM ? "
echo -e "${GREEN} ? [11] Elimina Kernel ? -NMm- :hNMNNNmdddddddddy/' dMM ? "
echo -e "${GREEN} ? [12] Configurazioni inutilizzate ? -dMNs-''-::::-------.'' dMM ? "
echo -e "${GREEN} ? [13] Pulizia Completa ? '/dMNmy+/:-------------:/yMMM ? "
echo -e "${GREEN} ? [0] Esci ? ./ydNMMMMMMMMMMMMMMMMMMMMM ? "
echo -e "${GREEN} ? * ) ? \.MMMMMMMMMMMMMMMMMMM ? "
echo -e "${GREEN} ? \' ) /( ( ( ( ( ( ? "
echo -e "${GREEN} ? ( )(_)))( )\ )\))( )\))( ? "
echo -e "${GREEN} ? (_(_())(()\((_)((_))\((_))\ ? "
echo -e "${GREEN} ? |_ _| ((_)(_) (()(_)(()(_) ? "
echo -e "${GREEN} ? | | | '_|| |/ _\'|/ _\'| ? "
echo -e "${GREEN} ? |_| |_| |_|\__, |\__, | ? "
echo -e "${GREEN} ? |___/ |___/ ? "
echo -e "${GREEN} ????????????????????????????????????????????????????????????????????????????? "
}
read_options(){
local choice
read -p "Seleziona la tua operazione [ 0 - 13] " choice
case $choice in
1) cerca ;;
2) installa ;;
3) rimuovi ;;
4) purge ;;
5) aggsys ;;
6) apt ;;
7) obs ;;
8) mini ;;
9) firefox ;;
10) chromium ;;
11) kernel ;;
12) configurazioni ;;
13) ALL=Y ; apt ; echo ; obs ; echo ; mini ; echo ; firefox ; echo ; chromium ; echo ; kernel ; echo ; configurazioni ;;
0) exit 0;;
*) echo -e "${RED}Error...${STD}" && sleep 2 ;;
esac
}
# ----------------------------------------------
-
trap '' SIGINT SIGQUIT SIGTSTP
# -----------------------------------
while true
do
show_menus
read_options
done
(http://i.imgur.com/yzS9T5f.png)
...Senti un po'. :)
A me servirebbe un modo per non dovere usare più gksu per lanciare lo script (...parlo di Slurp!) e per fare in modo che, anche se lanciato senza privilegi, lo script verifichi prima la condizione e nel caso chieda di salire con su.
Non sudo, o un'altra cosa, ma proprio su.
Tu pensi che si possa fare?
Hai qualcosa di pronto sottomano?
Grazie, ciao. :ciao:
ho trovato questo
su - root -c 'slackpkg update'
https://superuser.com/questions/458910/supply-su-password-in-a-bash-script-within-the-script (https://superuser.com/questions/458910/supply-su-password-in-a-bash-script-within-the-script)
ma vedi tu , di lanciare il comando lo lancia , il fatto sta che bha sembra essere una forzatura
meglio documentarsi meglio , non sempre tutto quello che sembra funzionare funzioni come dovrebbe
Ok, facciamo finta per un attimo che quello che hai riportato funziona,
resta da verificare se esiste o non esiste la condizione per lanciare il comando.
Se l'utente è già root non c'è motivo di passare il comando.
Io con gli script sto a zero ma avevo immaginato una risposta che iniziava con if e con un test, tipo
if [ $USER = root ] ; then (lancia lo script) # facile che ho scritto una cazzata ;D
Altrimenti, ecc. ...
Pazienza, per ora grazie per il tuo interessamento.
Mi cercherò uno script esistente in cui e stata affrontata la situazione, se esiste, e cercherò di capire come prenderne spunto.
:ciao:
EDIT:
un esempio di quello che dicevo sopra:
#! /bin/bash
if [ "$USER" = "root" ]; then
xterm -geometry 80x28+30+200 -sb -rightbar -font -*-fixed-medium-r-*-*-20-*-*-*-*-*-iso8859-* -bg darkgrey -T Slurp! -hold -e bash /opt/slurp/script/slurp-0.0.5.sh
else echo "mi spiace, devi essere root per eseguire lo script"
fi
Così verifica se sono root e se si lancia lo script, se no mi dice che non può.
Questo funziona, ma da qui a me serve poter diventare root e continuare.
NOTA:
mi viene in mente adesso che la soluzione potrebbe anche non riguardare direttamente lo script, se ci fosse un modo di agire a livello di "lanciatore" la soluzione sarebbe molto più semplice...
Ancora un altro EDIT:
la soluzione più semplice che ho trovato è agire sul lanciatore, così:
[Desktop Entry]
Categories=System
Version=0.0.5
Type=Application
Name=Slurp!
Comment=Script per Slackware, aggiorna il sistema e configura slackpkg/plus.
Exec=su - root -c "bash /opt/slurp/script/slurp-0.0.5.sh"
Icon=/opt/slurp/logo/Slurp-Logo-final.png
Path=
Terminal=true
StartupNotify=false
Keywords=slackpkg;upgrade;script;slackware
Il terminale su true e il comando suggerito da @trigg che comanda l'esecuzione dello script.
Sembra essere perfetto, anche se così mi sono perso la formattazione di xterm...
Continuerò (...parlando da solo) nel topic di Slurp: sono ancora interessato a tutte le possibili alternative, per cui, se a qualcuno venisse in mente qualcosa io lo ascolterei molto volentieri. :)
Ho trovato la soluzione definitiva con questa sintassi per la voce "Exec=" del lanciatore:
Exec=xterm -geometry 80x28+30+200 -sb -rightbar -font -*-fixed-medium-r-*-*-20-*-*-*-*-*-iso8859-* -bg darkgrey -T Slurp! -e su - root -c "bash /opt/slurp/script/slurp-0.0.5.sh"
con il terminale impostato su "false"
:ok: Grazie! :ciao:
in effetti avevi chiesto di non usare sudo e gksu
il discorso di if user=root si può fare ma non era quello che avevi domandato nel post :)
tornando a llo script secondo me non aveva molto senso indicare if user=root , perchè ,se non si è root il terminale di per sè già ti restituisce l'outpt devi essere root per eseguire questo comando.
al massimo se si vuole fare una cosa piè elegante potevi usare una cosa del genere , ora sono su anarchy e non posso provarla ma piu o meno è
echo -e "hai i privilegi di amministratore?\n(premi s per sì o un altro tasto per no)"
read -s -n1
if [ "$REPLY" == "s" -o "$REPLY" == "S" ]
then
su - root -c 'slackpkg update'
else
esci
in questo modo ti dice
sei root?
se rispodni si ti chiede la password e lanci il comando
altrimenti esci dallo script
Citazione di: nessuno il Venerdì 08 Giugno 2018, 11:26:28
...Senti un po'. :)
...e per fare in modo che, anche se lanciato senza privilegi, lo script verifichi prima la condizione e nel caso chieda di salire con su. ...
Mannaggia a te mannaggia, come non avevo chiesto di usare
if: come la volevi verificare la condizione?..
La prossima volta te lo dico in barese (...io sono anche un po' di Giovinazzo).
Con la formuletta che hai postato mi sembra che il su sia legato all'esecuzione del singolo comando, se è così diventa una palla eseguire tutti i comandi dello script.
Comunque così come è andata è la soluzione perfetta: io non volevo stravolgere lo script, e non l'ho proprio toccato. E volevo continuare a usare XTerm. E così continuo ad usarlo.
Il comando che mi hai suggerito era perfetto per la bisogna se usato nel lanciatore...
...Meglio di così non poteva andare. ;)
In qualche altro script capiterà sicuramente di usare if, ecc...
Comunque a scopo didattico qualche prova la faccio, Ma non per modificare Slurp, così com'è è troppo bello! :)
se lo script viene lanciato con su come vuoi fare allora non c'è da fare niente
se invece lo script viene lanciato da user allora secondo me non serve dire al sistema controlla che user è root perchè già lo fa
se sei root lancia il comando se non sei root ti dice che devi avaere i privilegi
la soluzione che userei è quella che ho scrittp prima
cioè lancio lo script da user
prima del comando chiedo di salire con su
e dopo lancio il comando.
però questo non serve per come hai ipostato il comando di lancio dello script perchè lo avii con su :)
questo script è la bozza del terminal-manger di gentoo
può esee utile per chi come me è alle prime armi con gentoo
ci sono i comandi di base che servono a gentoo , dopo sta all'utente capire cosa chiede portage
#!/bin/bash
clear
# Controllo dei permessi di chi esegue lo script
if [ "$EUID" -ne 0 ]
then echo "Eseguire lo script con i permessi di amministratore (su o sudo)"
exit
fi
############## Opzioni per il menu ##########################
options=("Cerca" "Installa Disinstalla Pacchetti" "Gestione Use-Flag" "Aggiorna il Sistema" "Pulizia di Sistema" "Esci")
################### subcerca ######################
Cerca () {
echo "Seleziona il numero della tua scelta"
cerca=("Aggiorna Eix e Cerca " "Cerca Senza Aggiornare " "Menu" )
PS3="> "
select mopt in "${cerca[@]}"
do
case $mopt in
"${cerca[0]}") echo "Aggiorna Eix e Cerca "
echo -n "Quale pacchetto desideri cercare? " ; read pack
eix-update
eix $pack
REPLY=
;;
"${cerca[1]}") echo "Cerca Senza Aggiornare "
echo -n "Quale pacchetto desideri cercare? " ; read pack
eix $pack
REPLY=
;;
"${cerca[2]}") echo "Menu Principale"
break
;;
*) REPLY=
;;
esac
done
}
###################################### Sub Pacchetti ############################
Installa_Disinstalla_Pacchetti () {
echo "Seleziona il numero della tua scelta"
pacchetti=("Installa da Portage Tree " "Installa da Overlays " "Rimuovi Pacchetto " "Menu" )
PS3="> "
select mopt in "${pacchetti[@]}"
do
case $mopt in
"${pacchetti[0]}") echo "Installa da Portage Tree "
echo -n "pacchetto da installare " ; read INSTALLA
emerge --ask $INSTALLA
echo "eseguito"
REPLY=
;;
"${pacchetti[1]}") echo "Installa da Overlays "
echo "devi prima scaricare l'ebuild"
echo premi un tasto per continuare
read -n1
cd /home/trigg/Scaricati/G
echo -n "Indica Categoria/Pacchetto " ; read rp
ls
echo -n "Inserisci .ebuild " ; read ebuild
mkdir -p /usr/local/portage/$rp
cp $ebuild /usr/local/portage/$rp
#mv $ebuild /mnt/DATI/gentoo/'installazione gentoo'/ebuild/
cd /usr/local/portage/$rp
repoman manifest
emerge --ask $rp
REPLY=
;;
"${pacchetti[2]}") echo "Rimuovi Pacchetto "
echo -n "Indica categoria/pacchetto da rimuovere" ; read ctpr
emerge --depclean --ask $ctpr
echo "eseguito"
REPLY=
;;
"${pacchetti[3]}") echo echo "Menu Principale"
break
;;
*) REPLY=
;;
esac
done
}
########################### Gestione Use Flag #################################
Gestione_Use_Flag () {
echo "Seleziona il numero della tua scelta"
Use_Flag=("Abilita Use-Flag " "Disabilita Use-Flag " "Menu" )
PS3="> "
select mopt in "${Use_Flag[@]}"
do
case $mopt in
"${Use_Flag[0]}") echo "Abilita Use-Flag "
echo -n "Indica Categoria/Pacchetto da ricompilare" ; read cpt
echo -n "Indica Use-flag da abilitare" ; read use
euse --enable $use --package $cpt
emerge --ask --changed-use --deep @world
echo "eseguito"
REPLY=
;;
"${Use_Flag[1]}") echo "Disabilita Use-Flag "
echo -n "Indica Categoria/Pacchetto da ricompliare" ; read dcpt
echo -n "Indica Use-flag da disabilitare" ; read duse
euse --disable $duse --package $dcpt
emerge --ask --changed-use --deep @world
echo "eseguito"
REPLY=
;;
"${Use_Flag[2]}") echo echo "Menu Principale"
break
;;
*) REPLY=
;;
esac
done
}
######################################### Aggiorna ###############################
Aggiorna () {
echo "Seleziona il numero della tua scelta"
aggiorna=("Aggiorna Portage Tree " "Aggiorna Pacchetti e Dipendenze " "Esegui emerge --update --newuse --deep @world " "Esegui emerge --ask --depclean " "Esegui emerge @preserved-rebuild " "Menu" )
PS3="> "
select mopt in "${aggiorna[@]}"
do
case $mopt in
"${aggiorna[0]}") echo "Aggiorna Portage Tree "
emerge --sync
echo "eseguito"
REPLY=
;;
"${aggiorna[1]}") echo "Aggiorna Pacchetti e Dipendenze "
echo "Stai per lanciare emerge --update --changed-use --deep --with-bdeps=y @world
Premi un Tasto per Continuare "
read -n1
emerge --update --changed-use --deep --with-bdeps=y @world
echo "eseguito"
REPLY=
;;
"${aggiorna[2]}") echo "Esegui emerge --update --newuse --deep @world "
emerge --update --newuse --deep @world
echo "eseguito"
REPLY=
;;
"${aggiorna[3]}") echo "Esegui emerge --ask --depclean "
emerge --ask --depclean
echo "eseguito"
REPLY=
;;
"${aggiorna[4]}") echo "Esegui emerge @preserved-rebuild "
emerge @preserved-rebuild
echo "eseguito"
;;
"${aggiorna[5]}") echo echo "Menu Principale"
break
;;
*) REPLY=
;;
esac
done
}
################################### Pulizia ##############################
Pulizia () {
echo "Seleziona il numero della tua scelta"
pulizia=("Pulizia /var/tmp/portage " "Esegui eclean-dist " "Menu" )
PS3="> "
select mopt in "${pulizia[@]}"
do
case $mopt in
"${pulizia[0]}") echo "Pulizia /var/tmp/portage "
echo "stai per eliminare le cartelle in /var/tmp/portage/ premi un tasto per continuare"
read -n1
/usr/bin/find /var/tmp/portage/ -mindepth 1 -maxdepth 1 -exec /bin/rm -rf {} +;
REPLY=
;;
"${pulizia[1]}") echo "Esegui eclean-dist "
echo "stai per eseguire eclean-dist premi un tasto per continuare"
read -n1
eclean-dist
REPLY=
;;
"${pulizia[2]}") echo echo "Menu Principale"
break
;;
*) REPLY=
;;
esac
done
}
### Scrivi le altre funzioni
###
### Fine delle funzioni
# Il menu
clear
PS3="Inserisci valore : "
select opt in "${options[@]}"
do
case $opt in
"${options[0]}")
clear
# Richiama la funzione "cerca" dichiarata precedentemente
Cerca
REPLY=
;;
"${options[1]}")
Installa_Disinstalla_Pacchetti
REPLY=
;;
"${options[2]}")
Gestione_Use_Flag
REPLY=
;;
"${options[3]}")
Aggiorna
REPLY=
;;
"${options[4]}")
Pulizia
REPLY=
;;
# Continua con le altre funzioni
#
"${options[-1]}") # Richiama l'ultimo indice (Uscita dallo script)
clear
exit
;;
esac
done
un ringraziamento è doveroso (non me ne vogliate male) a sabayonino di gentoo forum italia che mi ha aiutato tantissimo nell'eleborare lo script
l'utilità dello script sta anche nel creare menu e sub-menu
c'è voluto tempo tanto tempo , tanta emicrania e tanta fatica
ma alla fine ci sono riuscito
TRIGG.sh GENTOO TERMINAL MANAGER (https://paste.pound-python.org/show/qMfm9ihpCSKRJKcvKF6y/)
;D
TRIGG.sh GENTOO TERMINAL MANAGER (https://paste.pound-python.org/show/jINGT9r32cs9UZ2uSbnx/)
trigger gentoo termianl manager update (https://paste.pound-python.org/show/lWZCf8VvaYVcB4yym0bU/)
questa è la versione più completa dello script
modifiche
aggiunta di
-etc-update
-layman
adesso posso predere una pausa per organizzare l progetti delle nuove idee da riportare su leafpad dalla mia mente
questo script converte i file .deb in file .txz per slackware
#!/bin/bash
echo " apri il seguente collegamento
https://debian.pkgs.org/ "
sleep 4
cd /home/$USER
echo -n "crea la cartella del file .deb" ; read CARTELLA
mkdir -p $CARTELLA/pacchetti
cd /home/$USER/$CARTELLA
echo -n "incolla link del file .deb" ; read LINK
wget $LINK
cd /home/$USER/$CARTELLA
ls
echo -n "pacchetto .deb da installare " ; read INSTALLA
ar -x /home/$USER/$CARTELLA/$INSTALLA
clear
ls
echo -n "indica estenione gz o xz del file data.tar " ; read ESTENSIONE
cd pacchetti
tar xvf ../data.tar.$ESTENSIONE
#echo -n "dai il nome al file .txz esempio mintstick.txz" ; read txz
clear
su -c " makepkg -l y -c n /home/$USER/debtotxz/$INSTALLA.txz "
cd /home/$USER/debtotxz/
clear
echo ridigita PWD
su -c " upgradepkg --install-new $INSTALLA.txz "
exit
su -c " upgradepkg --install-new $txz "
exit
avrei voluto fare il video ma non ho avuto tempo
Ciao trigg,
hai rimesso in funzione la "Fucina", mi fa piacere.
Io sto usando da mesi ormai Il nostro programmino, Slurp!. Nella sua semplicità funziona benissimo. E adesso non saprei più farne a meno.
Ultimamente stavo pensando di fare un altro programmino con il quale gestire quella parte di slackpkg che si occupa della ricerca delle informazioni, la ricerca dei pacchetti, l'installazione e la rimozione del software.
Per il momento ho in mente solo i comandi che deve eseguire e una idea sul logo-icona e il nome del programma.
Per il Logo userò una vignetta di Bonvi, anche in omaggio ai 50 anni di Sturmtruppen (ottobre 1968-2018),
e il nome sarà presumibilmente:
Slackpkg Kommander
Lo spririto di slackpkg kommander:
(https://i.imgur.com/X1X21Ea.jpg)
...i 50 anni
(https://i.imgur.com/2uI6Lso.jpg)
Tu hai qualcosa in mente, hai voglia di partecipare?
Senza nessuna fretta...
:ciao:
!!!CIAO NICK!!!
è da diverso tempo che uso gentoo ma ieri mi è venuta l'illuminazione sullo script deb to txz per slackware
slackware non può mancare sul mio pc perchè è grazie a te e a slackware che ho iniziato a capire ed approfondire la conoscenza di linux :) e devo molto sia a te che a slackware.
non ho capito nello specifico cosa intendi per quella parte di slackpkg che si occupa della ricerca delle informazioni, la ricerca dei pacchetti, l'installazione e la rimozione del software.
ps anch'io sto usando slurp ed avevo intenzione di arricchirlo magari posto una bozza basata su slurp e ci lavoriamo sopra per metterci la ricerca ,l'installazione, informazione e tutto cio che riguarda i pacchetti
magari inserendoci anche lo script deb to txz ^_^
ciao e dimmi se postare la boza di slurp
slackpkg info "nomepacchetto"
slackpkg search ...
slackpkg file search ...
slackpkg install ...
slackpkg remove
Questa è sostanzialmente la "parte" di cui parlavo.
Riguardo a Slurp io ci tengo moltissimo che rimanga così semplice, non a caso l'ho definito "slackpkg updates manager" (guarda il logo nella mia firma), il suo compito son gli updates . Per questo non ho neanche tentato di inserirci altro all'epoca.
L'idea era già allora quella di fare un secondo script/programma.
Tu però sentiti libero di modificare slurp a tuo piacimento, è sufficiente che lo chiami con un altro nome (possibilmente completamente diverso) per non confonderlo con l'originale. A me certamente non dispiace.
In ogni caso Slackpkg Kommander nascerà con questo nome e farà le operazioni che ho elencato più su, anche se mi riservo di consultare prima le pagine man di slackpkg.
L'unica incognita è se tu vuoi farne parte, oppure no. Nel primo caso mi fa molto piacere, nel secondo me ne farò una ragione (...e lo farò da solo).
E' tutto più chiaro adesso?.. ;)
:ciao:
1) Aggiorna Sistema ---->(comandi ,slackpkg update gpg ,slackpkg check-updates, slackpkg update , slackpkg upgrade-all )
2) Configura slackpkg ----> (comandi , Configura slackpkplus ,Seleziona un Mirror, Edita la blacklist di slackpkg)
3) Gestione Pacchetti ----> (comandi , slackpkg info ..., slackpkg search ..., slackpkg file-search ..., slackpkg install/remove .... , upgradepkg --install-new ...)
4) Deb to txz
5) Esci
fare un menu principale con i sub-menu dei comandi
(http://i.imgur.com/uLdTT24.png)
...Va bene. Ho capito. Lo farò da solo.
Riguardo a debtotxz già esiste: https://slackbuilds.org/repository/14.2/misc/deb2tgz/
Personalmente solo una volta ho convertito un deb in tgz, in genere preferisco compilarlo dai sorgenti, comunque è ritenuta una pratica sconsigliabile.
In ogni caso, quando anche io ne facessi un uso tale da dovermi preoccupare di velocizzare il procedimento, farei un'azione di thunar, che è molto più semplice e comoda da usare.
Aspetto di vedere lo script che c'è dietro la schermata che hai postato prima
P.S.
deb2tgz è anche lui basato su uno script, questo:
#!/bin/sh
# Copyright 2016 Vitor Borrego, Corroios, Portugal
# Heavily based on deb2tgz (https://code.google.com/archive/p/deb2tgz/) created by Marcos Henrique Esteves Barbosa
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
CURRDIR=$(pwd)
if [ "$1" = "" ]; then
echo "$0: Converts DEB format to standard GNU tar + (GZ/XZ/LZ/BZ) format."
echo " (view converted packages with \"less\", install and remove"
echo " with \"installpkg\", \"removepkg\", \"pkgtool\", or manually"
echo " with \"tar\")"
echo
echo "Usage: $0 <file.deb>"
echo " (Outputs \"file.t*z\")"
exit 1;
fi
# Create a new temporary directory with a secure filename:
make_temp_dir()
{
if [ -x "$(which mcookie)" ]; then
tempd=/tmp/tmp.$(mcookie)
mkdir -p -m 0755 $tempd
elif [ -x "$(which openssl)" ]; then
tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | openssl dgst -md5)
mkdir -p -m 0755 $tempd
elif [ -x "$(which md5)" ]; then
tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | md5)
mkdir -p -m 0755 $tempd
elif [ -x "$(which mktemp)" ]; then
tempd=$(mktemp -d)
chmod 755 $tempd
fi
if [ -d $tempd ]; then # success, return the name of the directory:
echo $tempd
else
echo "ERROR: Could not find mcookie, openssl, or md5."
echo " Exiting since a secure temporary directory could not be made."
exit 1
fi
}
for debfile in $* ; do
# Create a temporary directory:
TMPDIR=$(make_temp_dir)
# Extract the DEB:
# Extract the file data.* from package $debfile
cp $debfile $TMPDIR
cd $TMPDIR
ar x $debfile 2> /dev/null
# echo $TMPDIR
# ls $TMPDIR
#mv $DATAFILE $TMPDIR
if [ ! $? = 0 ]; then
echo "ERROR: ar failed. (maybe $debfile is not an DEB?)"
rm -rf $TMPDIR
continue
fi
# Repack the files in the right archive:
if [ "`basename $0`" = "deb2tgz" ]; then
if [ -f "$TMPDIR/data.tar.gz" ]
then
mv $TMPDIR/data.tar.gz $CURRDIR/$(basename $debfile .deb).tgz
fi
if [ -f "$TMPDIR/data.tar.xz" ]
then
mv $TMPDIR/data.tar.xz $CURRDIR/$(basename $debfile .deb).txz
fi
if [ -f "$TMPDIR/data.tar.bz2" ]
then
mv $TMPDIR/data.tar.bz2 $CURRDIR/$(basename $debfile .deb).tbz
fi
if [ -f "$TMPDIR/data.tar.lzma" ]
then
mv $TMPDIR/data.tar.lzma $CURRDIR/$(basename $debfile .deb).tlz
fi
fi
# Remove temporary directory:
rm -rf $TMPDIR
done
cd $CURRDIR
questa è la bozza dello script è solo da completare
seguendo i passaggi del ***************** Sub AS********************
#!/bin/bash
clear
# Controllo dei permessi di chi esegue lo script
#if [ "$EUID" -ne 0 ]
# then echo "Eseguire lo script con i permessi di amministratore (su o sudo)"
#exit
#fi
############## Opzioni per il menu ##########################
options=("Aggiorna Sistema" "Configura Slackpkg+" "Gestione Pacchetti" "Deb to Txz" "Esci")
################### subAS ######################
AS () {
echo "Seleziona il numero della tua scelta"
AS=("Menu" "slackpkg update gpg " "slackpkg check-updates " "slackpkg update " "slackpkg install-new" "slackpkg upgrade-all " )
PS3="> "
select mopt in "${AS[@]}"
do
case $mopt in
"${AS[0]}") echo "Menu Principale"
break
;;
"${AS[1]}") echo "slackpkg update gpg "
slackpkg update gpg
REPLY=
;;
"${AS[2]}") echo "slackpkg check-updates "
slackpkg check-updates
REPLY=
;;
"${AS[3]}") echo "slackpkg update "
slackpkg update
REPLY=
;;
"${AS[4]}") echo "slackpkg install-new "
slackpkg install-new
REPLY=
;;
"${AS[5]}") echo "slackpkg upgrade-all "
slackpkg upgrade-all
REPLY=
;;
*) REPLY=
;;
esac
done
}
###################################### Sub CSP ############################
CSP () {
echo "Seleziona il numero della tua scelta"
CSP=("Menu" )
PS3="> "
select mopt in "${CSP[@]}"
do
case $mopt in
"${CSP[0]}") echo echo "Menu Principale"
break
;;
*) REPLY=
;;
esac
done
}
########################### Gestione GP #################################
GP () {
echo "Seleziona il numero della tua scelta"
GP=("Menu" )
PS3="> "
select mopt in "${GP[@]}"
do
case $mopt in
"${GP[0]}") echo echo "Menu Principale"
break
;;
*) REPLY=
;;
esac
done
}
######################################### DTT ###############################
DTT () {
echo "Seleziona il numero della tua scelta"
DTT=("Menu" )
PS3="> "
select mopt in "${DTT[@]}"
do
case $mopt in
"${DTT[0]}") echo echo "Menu Principale"
break
;;
*) REPLY=
;;
esac
done
}
### Scrivi le altre funzioni
###
### Fine delle funzioni
# Il menu
clear
PS3="Inserisci valore : "
select opt in "${options[@]}"
do
case $opt in
"${options[0]}")
clear
# Richiama la funzione "cerca" dichiarata precedentemente
AS
REPLY=
;;
"${options[1]}")
CSP
REPLY=
;;
"${options[2]}")
GP
REPLY=
;;
"${options[3]}")
DTT
REPLY=
;;
# Continua con le altre funzioni
#
"${options[-1]}")
clear
exit
;;
esac
done
Non mi sembra neanche male come idea, certo non è ancora completato, è ancora parecchio in disordine, ma si può riordinare.
Se lo script lo fai solo per il tuo uso personale fallo pure come vuoi, tanto lo usi solo tu.
Se lo fai anche per gli altri considera questo consiglio: evita di aggiungerci debtotxz.
A parte che è assolutamente inutile, e lo dico da utente Slackware, ma è anche potenzialmente pericoloso se usato da chi non ha le idee chiare su Slackware prima e su quello che sta per fare immediatamente dopo.
Capisco che ormai l'hai fatto e sei "preso", come successe con le scorciatoie da tastiera: con le quali pretendevi di risolvere qualsiasi cosa, come se fosse semplice ricordarsele tutte, e per le quali rifiutasti di prendere in considerazione soluzioni più semplici e immediate. Una sorta di panacea...
La necessità di convertire un deb in txz è una cosa che torna utile così raramente (anche mai) che inserirla in uno script del genere, a parte i rischi che comporta per il sistema, corre anche il rischio di sottrarre spazio e visibilità a cose molto più utili e importanti.
Le mie considerazioni e le mie critiche vogliono essere costruttive, se non è così che le vedi basta farmelo sapere e io farò a meno di parlare la prossima volta. ;)
lo script non è in disordine è solo impostato
bisogna solo completarlo ed è aperto ad ogni possibile personalizzazione
diciamo che è è come il marmo di michelangelo bisogna solo togliere l'eccesso per realiare l'opera
questa bozza la si può fare liberamente come si vuole :ciao:
Per "in disordine" intendevo questo:
Seleziona il numero della tua scelta
1) Menu 4) slackpkg update
2) slackpkg update gpg 5) slackpkg install-new
3) slackpkg check-updates 6) slackpkg upgrade-all
>
Converrai con me che la sequenza dei comandi non segue certamente un ordine logico, neanche coerente.
Però, come già sottolineavi tu, è solo un accenno...
Comunque quello che avevo in mente io erano script distinti, ognuno con il suo compito, richiamabili con una voce apposita all'interno degli altri script, ma eseguibili singolarmente a seconda dell'esigenza del momento e,
grazie alla pacchettizzazione di Slackware. installabili con un unico pacchetto.
Tra questi pacchetti che compongono la suite anche un mini-manuale che chiarisse, in modo conciso, le funzioni e lo scopo dei comandi richiamabili dal programma.
Questo perché ci tengo in modo particolare che il tutto sia strettamente fedele alla filosofia K.I.S.S. così come la intende Slackware.
Questa per me è una condicio sine qua non. Vale a dire che se non lo posso fare così non mi interessa farlo.