Script di gestione della history e dei pacchetti installati

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
l3on4rdo

Script di gestione della history e dei pacchetti installati

Messaggio da l3on4rdo »

Ciao a tutti.
Con le motivazioni espresso in questo post, ho deciso di fare un piccolo script per venire incontro ai nuovi utenti che volessero tenere traccia dei pacchetti installati ma soprattutto di tutti i comandi impartiti al sistema.
Onde evitare di affogare la discussione sul terminale con scambi di messaggi relativi a questo script, su suggerimento anche di altri utenti, ho deciso di aprire questa discussione per continuare qui.
Lo script funziona ma deve ancora passare sotto alcune revisioni.
Ovviamente sono bene accette critiche di qualsiasi tipo, volte al miglioramento dello stesso.
Ogni suggerimento sarà ponderato ed eventualmente inserito nell'ambito di una futura revisione.

Ecco lo script (spero di non aver fatto di nuovi disastri con il copia incolla)
(30 luglio 2011 ore 16:17)

Codice: Seleziona tutto

#! /bin/bash
#This script creates two kind of txt file
#depending on parameter passed to the script
#and on the BACKUP directory you choose. (default is the one in which you put this script)
#Feel free to write your favorite directory in the line below,
#possibly withtout the ending /
BACKUP=

#Txt file created are
#an historcal list of sorted and univocally occurring bash commands
#and a list of installed packages.
#Txt file name is univocally determinated by date

#FURTHER DEVELOPMENTS
#LANGUAGE recognition
#commands tab-completion
#... others :)

LANGUAGE=$LANG
LANGUAGE=${LANGUAGE:-"it_IT.utf8"}
BACKUP=${BACKUP:-$(dirname `readlink -f $0`)}


if ! [ -w "${BACKUP}" ]; then
	echo -e "$BACKUP: Permesso negato"
	exit 1
fi

ARGV=("$@")
AVAILABLE_OPTIONS=("-packages" "--remove-list" "-history" "--merge-history" "--merge-all" "--remove-history")

#PACKAGESFILE=`find ${BACKUP} -maxdepth 1 -name "my-packages*txt" | sort | tail -n 1`
HISTORYFILE=`find ${BACKUP} -maxdepth 1 -name "sortedUniqHistory*txt" | sort | tail -n 1`
#echo ${HISTORYFILE}

#date in file name compatible format
DATA=`date +%F-%R:%S`

function contains() {
	local n=$#
	local value=${!n}
	for ((i=1;i < $#;i++)) {
		if [ "${!i}" == "${value}" ]; then
		return 0
		fi
	}
	return 1
}

function Usage() {
	echo -e "\nSYNOPSIS\n"
	echo -e "\t$0 \n\t[ -packages | --remove-list ] \n\t[ -history | --merge-history | --merge-all | --remove-history ]\n"
	echo -e "DESCRIPTION\n"
	echo -e "-packages:\n\tViene creato in\n\t${BACKUP}\n\tun file contenente tutti i pacchetti installati.\n"
	echo -e "--remove-list:\n\tVengono eliminati i file my-packages presenti in\n\t${BACKUP}.\n\tViene poi creato un nuovo file my-packages.\n"
	echo -e "-history:\n\tViene creato in\n\t${BACKUP}\n\tun file con il contenuto di\n\t$HOME/bash_history.\n\tTale contenuto è elaborato in modo che\n\tsia in ordine alfabetico\n\te ogni comando compaia una volta.\n"
	echo -e "--merge-history:\n\tCome -history,\n\tma il file creato viene unito al più recente trovato in\n\t${BACKUP}.\n\tIn caso non venga trovato un file recente,\n\tnon viene elaborato nessun file.\n"
	echo -e "--merge-all:\n\tCome -history,\n\tma il file creato viene unito a tutti quelli trovati in\n\t${BACKUP}.\n"
	echo -e "--remove-history:\n\tRimuove tutti i file con lo storico dei comandi,\n\tcontenuti in ${BACKUP},\n\tescluso il più recente.\n"
	exit 1
}

if [ $# = 0 ]; then
	echo -e "Usare «$0 --help» per ulteriori informazioni."
	exit 1
elif [ $# = 1 ] && [ ${ARGV[0]} = --help ]; then
	Usage
fi

wrong_option_flag=1
for item in ${ARGV[@]}; do
	if ! contains "${AVAILABLE_OPTIONS[@]}" "${item}"; then
		echo -e "$0": opzione non riconosciuta \"${item}\"
		wrong_option_flag=0
	fi
done

if [ ${wrong_option_flag} = 0 ] ; then
	echo -e "Usare «$0 --help» per ulteriori informazioni."
	exit 1
fi



#--remove-list:
#if writing permission is granted, al my-pachages file in $BACKUP dir
#will be removed
#otherwise, a warning will be printed
#and then... a new my-packages file will be created
if contains "${ARGV[@]}" "--remove-list"; then
	if contains "${ARGV[@]}" "-packages"; then
		echo -e "Usare «$0 --help» per ulteriori informazioni."
	else
		for item in `find ${BACKUP} -maxdepth 1 -name "my-packages*txt"`; do
			if [ -w "${item}" ]; then
				rm "${item}"
			elif ! [ -w "${item}" ]; then
				echo "${item}: Permesso negato"
			fi
		done
		dpkg --get-selections > ${BACKUP}/my-packages`echo -$DATA`.txt
	fi
#-packages:
#if an already existing file is finded in $BACKUP a warning is printed
#otherwise, a my-packages file is created
elif contains "${ARGV[@]}" "-packages"; then
	if [ -e ${BACKUP}/my-packages`echo -$DATA`.txt ]; then
		echo -e "${BACKUP}/my-packages`echo -$DATA`.txt": file esistente
	else
	dpkg --get-selections > ${BACKUP}/my-packages`echo -$DATA`.txt
	fi
fi

#-history:
#if an already existing file is finded in $BACKUP, a warning is printed
#an
if contains "${ARGV[@]}" "-history"; then
	if contains "${ARGV[@]}" "--merge-history" || contains "${ARGV[@]}" "--remove-history" || contains "${ARGV[@]}" "--merge-all"; then
		echo -e "Usare «$0 --help» per ulteriori informazioni."
	else
		if ! [ -e ${BACKUP}/sortedUniqHistory`echo -$DATA`.txt ]; then
			cat ${HOME}/.bash_history | sort | uniq > ${BACKUP}/sortedUniqHistory`echo -$DATA`.txt
		elif ! [ -w ${BACKUP}/sortedUniqHistory`echo -$DATA`.txt ]; then
			echo "${BACKUP}/sortedUniqHistory`echo -$DATA`.txt: permesso in scrittura negato"
		elif [ -w ${BACKUP}/sortedUniqHistory`echo -$DATA`.txt ]; then
			echo -e "${BACKUP}/sortedUniqHistory`echo -$DATA`.txt": file esistente
			echo -n "Procedere comunque, sovrascrivendo il file? (y/n): "
			read risposta
			case ${risposta} in
			y)
				cat ${HOME}/.bash_history | sort | uniq > ${BACKUP}/sortedUniqHistory`echo -$DATA`.txt
				;;
			*)
				;;
			esac
		fi
	fi
elif contains "${ARGV[@]}" "--merge-history"; then
	if contains "${ARGV[@]}" "--remove-history" || contains "${ARGV[@]}" "--merge-all"; then
		echo -e "Usare «$0 --help» per ulteriori informazioni."
	elif ! [ -e "${HISTORYFILE}" ]; then
		echo -e "Non è stato trovato un file da fondere"
	elif [ "${HISTORYFILE}" = ${BACKUP}/sortedUniqHistory`echo -$DATA`.txt ]; then
		echo -e "${HISTORYFILE}": file di destinazione esistente
	elif  ! [ -r "${HISTORYFILE}" ]; then
		echo -e "${HISTORYFILE}: Permesso in lettura negato"
	elif [ -r "${HISTORYFILE}" ]; then
		cat ${HISTORYFILE} ${HOME}/.bash_history | sort | uniq >> ${BACKUP}/sortedUniqHistory`echo -$DATA`.txt
	fi
elif contains "${ARGV[@]}" "--remove-history"; then
	if contains "${ARGV[@]}" "--merge-all"; then
		echo -e "Usare «$0 --help» per ulteriori informazioni."
	else
		for item in `find ${BACKUP} -maxdepth 1 -name "sortedUniqHistory*txt"`; do
			if [ "${item}" != "${HISTORYFILE}" ]; then
				if [ -w "${item}" ]; then
					rm "${item}"
				elif ! [ -w "${item}" ]; then
					echo "${item}: Permesso negato"
				fi
			else
				echo "${item}: file più recente, non verrà cancellato"
			fi
		done
	fi
elif contains "${ARGV[@]}" "--merge-all"; then
	output="${BACKUP}/sortedUniqHistory`echo -$DATA`.txt"
	if [ -e "${output}" ]; then
		echo "${BACKUP}/sortedUniqHistory`echo -$DATA`.txt": file di destinazione esistente
	elif ! [ -e "${output}" ]; then
		cat `find ${BACKUP} -maxdepth 1 -name "sortedUniqHistory*txt"` ${HOME}/.bash_history | sort | uniq > "${output}"
		#echo `find ${BACKUP} -maxdepth 1 -name "sortedUniqHistory*txt" | wc -l`
		if [ `find ${BACKUP} -maxdepth 1 -name "sortedUniqHistory*txt" | wc -l` -gt 1 ]; then
			echo -n "Si desidera eliminare i file elaborati? (y/n):"
			read risposta
			case "${risposta}" in
			y)
				for item in `find ${BACKUP} -maxdepth 1 -name "sortedUniqHistory*txt"`; do
					if [ "${item}" != "${output}" ]; then
						if [ -w "${item}" ]; then
							rm "${item}"
						elif ! [ -w "${item}" ]; then
							echo "${item}: permesso negato"
						fi
					fi
				done
				;;
			*)
				;;
			esac
		fi
	fi
fi
una volta salvato lo script e impostati i giusti permessi, consiglio di lanciare:

Codice: Seleziona tutto

./nomescript.sh --help
per un breve help.

ciao
Avatar utente
Fox Mulder
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 765
Iscrizione: lunedì 25 gennaio 2010, 17:54
Desktop: Gnome
Distribuzione: Ubuntu 18.04 LTS x86_64
Sesso: Maschile

Re: Script di gestione della history e dei pacchetti installati

Messaggio da Fox Mulder »

Eccomi... Cosi sono sempre aggiornato...!!!
(b2b)
--->Albero Genealogico Gnu/Linux<---
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)
Avatar utente
TUX5+0
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1115
Iscrizione: domenica 7 febbraio 2010, 17:54
Desktop: Ubuntu
Distribuzione: Ubuntu 18.10 64 bit
Località: ai confini della realtà
Contatti:

Re: Script di gestione della history e dei pacchetti installati

Messaggio da TUX5+0 »

Aderisco
https://www.youtube.com/watch?v=PN6puH9DYnQ
Meglio essere protagonisti della propria tragedia che spettatori della propria vita .Quando l'ultima fiamma sarà spenta, l'ultimo fiume avvelenato, l'ultimo pesce catturato, allora capirete che non si può mangiare denaro.
deegan
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2639
Iscrizione: lunedì 28 aprile 2008, 12:42
Distribuzione: Ubuntu 20.04
Sesso: Maschile
Località: Varese

Re: Script di gestione della history e dei pacchetti installati

Messaggio da deegan »

Eccomi al volo*****  ;D
MB* ASUS TUF Gaming Z690 SV* EVGA RTX 3080 Ti CPU* i7-12700K
RAM* Vengeance RGB PRO 32GB 3600MHz SSD* Samsung 980 PRO 2TB
Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: Script di gestione della history e dei pacchetti installati

Messaggio da Elrond »

In attesa di guardarlo per bene con calma, perché per gestire le opzioni non usi getopts?

Per la funzione Usage che ne dici di

Codice: Seleziona tutto

function Usage() {
    cat <<EOF

SYNOPSIS

	$0 
	[ -packages | --remove-list ] 
	[ -history | --merge-history | --merge-all | --remove-history ]

DESCRIPTION

-packages:
	Viene creato in
	${BACKUP}
	un file contenente tutti i pacchetti installati.

--remove-list:
	Vengono eliminati i file my-packages presenti in
	${BACKUP}.
	Viene poi creato un nuovo file my-packages.

-history:
	Viene creato in
	${BACKUP}
	un file con il contenuto di
	$HOME/bash_history.
	Tale contenuto è elaborato in modo che
	sia in ordine alfabetico
	e ogni comando compaia una volta.

--merge-history:
	Come -history,
	ma il file creato viene unito al più recente trovato in
	${BACKUP}.
	In caso non venga trovato un file recente,
	non viene elaborato nessun file.

--merge-all:
	Come -history,
	ma il file creato viene unito a tutti quelli trovati in
	${BACKUP}.

--remove-history:
	Rimuove tutti i file con lo storico dei comandi,
	contenuti in ${BACKUP},
	escluso il più recente.
EOF
    exit 1
}
? Personalmente lo trovo più leggibile e facilmente modificabile, poi sei liberissimo di complicarti la vita come ti pare ;D
Ultima modifica di Elrond il sabato 30 luglio 2011, 21:07, modificato 1 volta in totale.
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
l3on4rdo

Re: Script di gestione della history e dei pacchetti installati

Messaggio da l3on4rdo »

per lo Usage, mi hai letto nel pensiero. non mi piaceva come lo avevo impostato ed era una delle modifiche che avrei apportato.
magari per fare come mi hai suggerito tu, ci avrei messo qualche mese :)

getopts ha due pecche. non so se sia presente in ogni distribuzione. non mi piace assai (ma questa è una cosa personale)

ciao e grazie per i consigli.
Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: Script di gestione della history e dei pacchetti installati

Messaggio da Elrond »

l3on4rdo ha scritto: getopts ha due pecche. non so se sia presente in ogni distribuzione. non mi piace assai (ma questa è una cosa personale)
è un builtin della bash

Codice: Seleziona tutto

$ type getopts 
getopts è un builtin di shell
perché non dovrebbe esserci in ogni distribuzione?  ???
Sulla seconda pecca non posso farci nulla  ;D

EDIT: ho aggiornato la funzione Usage nel messaggio precedente, ora dovrebbe essere più fedele a quella che avevi scritto tu
Ultima modifica di Elrond il sabato 30 luglio 2011, 21:08, modificato 1 volta in totale.
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
l3on4rdo

Re: Script di gestione della history e dei pacchetti installati

Messaggio da l3on4rdo »

uno se le inventa tutte, pur di non usare getopts :)

diciamo pure che lo conosco poco.
(e non dirlo a nessuno, ma pensavo che prima o poi avrei modificato anche in questo senso lo script :) )
Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: Script di gestione della history e dei pacchetti installati

Messaggio da Elrond »

Se vuoi rendere lo script portabile su diverse distribuzioni potresti provare a renderlo indipendente dalla shell usata (anche se la bash è la shell predefinita praticamente in tutte le distro, non è detto che tutti gli utenti usino quella come shell) ;)
Se vuoi farlo, metti /bin/sh invece di /bin/bash nella shebang e quando definisci le funzioni non usare function (la dash non conosce function)

P. S. non so se hai visto che ho aggiornato la funzione Usage, l'ho spiegato nel messaggio precedente
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
l3on4rdo

Re: Script di gestione della history e dei pacchetti installati

Messaggio da l3on4rdo »

ho visto la modifica allo Usage ;)

per il resto ci aggiorniamo a quando torno, devo uscire.
grazie per ora.

ciao
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4026
Iscrizione: lunedì 3 aprile 2006, 10:17

Re: Script di gestione della history e dei pacchetti installati

Messaggio da bingel »

Non ho ancora letto nemmeno una riga di codice ma mi iscrivo perché ritengo che la cosa potrebbe rivelarsi interessante e suggerisco inoltre questo mio vecchio post nel caso possa essere d'ispirazione ...oltre che per avere pure io il mio momento di gloria :) (l'avevo già segnalato sull'altro topic ma nessuno mi ha cag*** di una lira).
Probabilmente se all'epoca avessi conosciuto getopts (oltre a tante cose che ancora certamente ignoro), mi sarei risparmiato un bel po' di lavoro ...ammesso che getopts serva a fare quello che immagino...

PS: lo script più aggiornato è quello presente nel primo post del topic linkato ...e non "accanitevi" (ma almeno cag*temi! :) ) con commenti di disprezzo o suggerimenti in quanto saranno sistematicamente ignorati: anche se so benissimo che ha alcuni bug/limitazioni e anche se posso immaginare che tanti altri probabilmente non li conosco neppure, funziona discretamente bene e non ho alcuna voglia né intenzione di rimettervi mano (come ho detto, e lo ribadisco, questo commento vuole essere solo un suggerimento o fonte di ispirazione).
Ultima modifica di bingel il domenica 31 luglio 2011, 17:26, modificato 1 volta in totale.
Free Thought - Free World
l3on4rdo

Re: Script di gestione della history e dei pacchetti installati

Messaggio da l3on4rdo »

Ciao a tutti.
Sono davvero contento se questo script ha un'utilità o un interesse da parte vostra.
Ho deciso di pubblicare lo script, anche se ancora da revisionare e migliorare, perché lunedì parto per 10 giorni di vacanze e volevo approfittare di questo tempo per farvi dare un'occhiata e suggerire tutti i miglioramenti che vi vengono in mente.
Lo script nasce per una mia esigenza (ho reinstallato dimenticando di fare alcuni controlli) e per venire incontro soprattutto ai nuovi utenti.
Non mi urta se mi date consigli, anzi. Se lo script viene ottimizzato o se vengono suggerite nuove funzioni da implementare per me è un grande traguardo.
Questo è l'unico forum di informatica che frequento e provo un "affetto" davvero strano da spiegare, per tutto quello che ho imparato qui e per tutti i consigli che molti di voi mi hanno dato.

Controllate, meditate e non vi preoccupate di suggerire tutto quello che vi viene in mente.  (good)
Al momento sto riflettendo su quale sia il modo più chiaro e lineare per apportare le modifiche.
Credo che metterò dei link per scaricare il codice nel primo messaggio, con la data e le modifiche apportate.

Al momento, quello che è in progetto, è:
1) riconoscimento della lingua dell'utente (per lo Usage)
2) abilitazione di getopts per il parsing dei parametri
3) implementazione del autocompletamento con il tasto TAB
(penso sotto forma di un ulteriore script per abilitare il tab-completion di questo script)

se avete altri suggerimenti, ripeto, non siate timidi! ;)

ciao  :)
Ultima modifica di l3on4rdo il domenica 31 luglio 2011, 2:54, modificato 1 volta in totale.
Avatar utente
Elrond
Rampante Reduce
Rampante Reduce
Messaggi: 5018
Iscrizione: sabato 22 novembre 2008, 12:32
Contatti:

Re: Script di gestione della history e dei pacchetti installati

Messaggio da Elrond »

l3on4rdo ha scritto: Al momento sto riflettendo su quale sia il modo più chiaro e lineare per apportare le modifiche.
Credo che metterò dei link per scaricare il codice nel primo messaggio, con la data e le modifiche apportate.
Potresti usare un programma per il controllo delle versioni come git. Potresti crearti in continuazione copie di backup dello script, ma in breve tempo avresti il computer zeppo di backup per lo più uguali e sostanzialmente inutili, invece un repo git occupa pochissimo spazio e ti fornisce molte più funzioni: ti risolve molti grattacapi, ti mantiene una cronologia delle modifiche e permette di ripristinare una versione precedente o annullare una modifica.

@bingel: ieri avevo dato un'occhiata allo script, però è troppo lungo perché gli possa dare guardarmelo con calma a breve. Se in futuro avrò più tempo vedrò se posso aiutarti in qualche modo ;)
Il mio blog su Ubuntu | Script per vedere canali RAI in diretta senza browser (discussione)
Quando devi inserire nei messaggi del codice usa il tag code, è il pulsante # sopra le emoticon: [code]inserisci il testo qui[/code]
LordMax
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 712
Iscrizione: giovedì 13 luglio 2006, 17:36
Desktop: lxde
Distribuzione: xubuntu 12.10 64 bit
Località: Torino
Contatti:

Re: Script di gestione della history e dei pacchetti installati

Messaggio da LordMax »

Miiii, è una droga.
Oggi ho usato un altro pc su cui non c'era lo script e ho tentato tre volte di avviarlo prima di rendermene conto.
^___^

Grazie mille, è utilissimo!
Ho messo questo post di fianco alla home di FCM sullo speeddial. ^__^
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4026
Iscrizione: lunedì 3 aprile 2006, 10:17

Re: Script di gestione della history e dei pacchetti installati

Messaggio da bingel »

@Elrond: ti capisco, persino io non ho nessuna voglia di riprenderlo in mano.

In ogni caso, dato che lo script di Leonardo si propone quanto segue:
#Txt file created are
#an historcal list of sorted and univocally occurring bash commands
#and a list of installed packages.
#Txt file name is univocally determinated by date
ed in particolar modo "a list of installed packages", credo che un'occhiata, almeno, a come funziona, dovreste dargliela in quanto genera un log delle installazioni e degli aggiornamenti eseguiti nel tempo, dei vari pacchetti presenti nel sistema con data d'installazione/rimozione/aggiornamento, numero di versione e altri dettagli. Quindi ritengo che integrando alcune funzioni nello script di Leonardo, potrebbe venirne fuori una cosa davvero utile e ben fatta e in caso di pasticcio derivante dall'installazione/aggiornamento di un programma, essere davvero d'aiuto.

Non ho ancora avuto modo di provare lo script di Leonardo quindi per ora, i miei suggerimenti sono solo i seguenti:

- dagli un nome significativo
- stabilisci una default directory di backup (io li metteri in /var/log o comunque in una directory all'interno di /var)
Ultima modifica di bingel il domenica 31 luglio 2011, 18:09, modificato 1 volta in totale.
Free Thought - Free World
l3on4rdo

Re: Script di gestione della history e dei pacchetti installati

Messaggio da l3on4rdo »

Ciao a tutti, sono stato un po' impicciato ma sto riprendendo un po' questo script.
Riprendendo da qui
Mi sono sconfusionato con:

Codice: Seleziona tutto

l3on4rdo@l3on4rdo-laptop:~$ type getopt
getopt è /usr/bin/getopt
In questi giorni ho innanzitutto fatto un po' di ricerche su getopts. Ho iniziato a "capire" come funziona perché non l'ho mai usato prima.
Allora, le mie domande, per Elrond soprattutto, sono:
1)
getopts è un built-in di tutte le shell?
2)
nello script (lo avrai letto :) i parametri da passare, per creare/aggiornare i file della history, sono mutuamente esclusivi.
getopts, mi pare, non implementa tale capacità. ovvero, mi pare che non sia possibile passare a getopts informazioni per dirgli:
se passo il parametro pippo, allora pluto e paperino non vanno passati.
se passo il parametro paperino, allora pippo e pluto non vanno passati.
se passo il parametro pluto, allora paperino e pippo non vanno passati.
o mi sbaglio?

ciao
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: Script di gestione della history e dei pacchetti installati

Messaggio da crap0101 »

l3on4rdo ha scritto: 1)
getopts è un built-in di tutte le shell?
dovrebbe, qui ne cita alcune https://secure.wikimedia.org/wikipedia/en/wiki/Getopts
ma pare di capire che ce ne siano anche altre che lo usano.
2)
getopts, mi pare, non implementa tale capacità. ovvero, mi pare che non sia possibile passare a getopts informazioni per dirgli:
nenache a me, temo dovrai controllare che non confliggano.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
TUX5+0
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1115
Iscrizione: domenica 7 febbraio 2010, 17:54
Desktop: Ubuntu
Distribuzione: Ubuntu 18.10 64 bit
Località: ai confini della realtà
Contatti:

Re: Script di gestione della history e dei pacchetti installati

Messaggio da TUX5+0 »

Scusate ma state aggeggiando ad uno script del 1986 ? Ancora nessuno ci aveva lavorato sopra ? 25 anni in cantina ?
https://www.youtube.com/watch?v=PN6puH9DYnQ
Meglio essere protagonisti della propria tragedia che spettatori della propria vita .Quando l'ultima fiamma sarà spenta, l'ultimo fiume avvelenato, l'ultimo pesce catturato, allora capirete che non si può mangiare denaro.
l3on4rdo

Re: Script di gestione della history e dei pacchetti installati

Messaggio da l3on4rdo »

LoSquartatore ha scritto: Scusate ma state aggeggiando ad uno script del 1986 ? Ancora nessuno ci aveva lavorato sopra ? 25 anni in cantina ?
in che senso?
la discussione l'ho aperta il
« inserita: 30 Luglio, 2011, 16:27:10 »
:)

ciao
l3on4rdo

Re: Script di gestione della history e dei pacchetti installati

Messaggio da l3on4rdo »

crap0101 ha scritto: [...]
2)
getopts, mi pare, non implementa tale capacità. ovvero, mi pare che non sia possibile passare a getopts informazioni per dirgli:
nenache a me, temo dovrai controllare che non confliggano.
@ Elrond e crap0101
Era quello che temevo. Mi sono studiato un pochino getopt(s) e mi sembra proprio che non gestisca la conflittualità tra i vari parametri, che è quello che è servito e che ho fatto nello script in questa discussione.
Temo pertanto che getopt(s) non sia utilizzabile, almeno non per gestire in profondità i parametri passati, come suggeriva Elrond.

ciao
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Bing [Bot] e 3 ospiti