Vous n'êtes pas identifié(e).
Pages : 1
./script.sh | cut -d':' -f1,3
cut':' prends la sortie de script.sh à partir des 2 points(délimiteur) ':' , ça je sais mais -f1,3 ?
-f ? ça veut dire quoi ? et -f1,3 ?
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
#!/bin/sh
for p in $(dpkg -l | awk '/^ii/ { print $2 }')
do
for f in $(dpkg -L "$p" | grep '^/')
do
if [ ! -e "$f" ]
then
[ -L "$f" ] || { printf "%s: au moins un fichier manquant %s\n" "$p" "$f" && break; }
fi
done
done
j'aimerai le comprendre
for p in $(dpkg -l | awk '/^ii/ { print $2 }')
do
ça veut dire quoi pour commencer ?
que veulent dire "in" et "awk" ? awk ,je crois que c'est de la programmation pure dans le shell
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
tant que p = (dpkg -l | awk '/^ii/ { print $2 }') , alors tant que f = (dpkg -L "$p" | grep '^/') alors if [ ! -e "$f" ] then [ -L "$f" ] || { printf "%s: au moins un fichier manquant %s\n" "$p" "$f" && break; }
la commande dpkg -l , je connais à peu près ; c'est une commande bash pour lister les paquets du systeme mais c'est le pipe qui suit qui m'interpelle :
| awk '/^ii/ { print $2 }'
awk , je sais que c'est de la programmation sous shell .
mais j'ai beau chercher , je comprends pas plus
Hors ligne
for p in $(dpkg -l | awk '/îi/ { print $2 }')
demande à shell d'imprimer le deuxième champ de la commande "dpkg -l" en retirant les premiers "ii"
reste
for f in $(dpkg -L "$p" | grep '^/')
ça veut dire quoi ?
Dernière modification par debian-alain (14-01-2017 09:32:58)
Hors ligne
en même temps vous êtes là pour ça , non ?
Euuuuuh....
Le site n'a pas d'autres buts que de mettre en rapport des membres utilisant debian, c'est aux membres de choisir ce qu'ils y font.
Je t'ai indiqué comment chercher dans le wiki avant de poser une question afin de te permettre de te passer du site pour questionner et parvenir à devenir un de nos brillants animateurs pour l'entraide.
Donc, je te renouvelle mon conseil précédent, déjà il y a une petite case en haut à gauche des pages du wiki où tu écris awk par exemple et tu auras le tuto concernant awk proposé en lien avant même que tu valides.
C'est cela l'entraide et non pas laisser dans la dépendance les personnes qui viennent ici chercher des sources qu'elles ne trouvent pas seules.
Pour : être là pour ça (ok, c'est une expression malheureuse que tu ne penses pas si abruptement), il faudrait alors du personnel rémunérées pour l'accomplir, et là, c'est plus du libre mais un marché où nous introduirons forcément des liens commerciaux pour le rentabiliser financièrement, comme sur certains sites...
L'avantage de ton acharnement à comprendre est que tu enrichis souvent le forum, mais tu le ferais plus encore en développant par toi-même tes questions réponses, notamment dans le wiki, dont justement qu'on causait qu'il est là pour ça, lui, sous la veille et la responsabilité de tous les membres df, sans exception aucune.
Force et courage dans ton aventure, amitié, Joel
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
> Débuter sur Debian
Principales commandes Linux+ISOs DF+Les cahiers du débutant
> Débuter sur openSUSE
Site officiel + Wiki fr + Forum fr +Guide du débutant sur Leap 15.x
Hors ligne
for f in $(dpkg -L "$p" | grep '^/')
apparemment dpkg -L "$p" fait un dpkg -L avec
les données de la ligne précédente (savoir le nom du paquet seul).
reste le grep'^/' , ça veut dire quoi ?
apparemment : enregistre les lignes dpkg -L de dpkg -l(nom du paquet) à partir du caractère /
donc récapitulons :
la première ligne affiche le nom du paquet , la deuxième ligne plus précisément met en mémoire l'adresse du paquet donc on obtient :
affiche nom du paquet + mise en memoire chemin du paquet
reste la troisième ligne :
if [ ! -e "$f" ]
apparemment : si on n'imprime pas $f , alors ....
[ -L "$f" ] || { printf "%s: au moins un fichier manquant %s\n" "$p" "$f" && break; }
faire un dpkg -L $f à travers le pipe printf "%s: au moins un fichier manquant %s\n" + imprimer le dpkg -L "$f"
c'est bien ça smolski ?
salut chalu , si tu t'y connais , tu peux me donner ton avis ?
grosses bises au passage .
Dernière modification par debian-alain (14-01-2017 10:34:37)
Hors ligne
> Débuter sur Debian
Principales commandes Linux+ISOs DF+Les cahiers du débutant
> Débuter sur openSUSE
Site officiel + Wiki fr + Forum fr +Guide du débutant sur Leap 15.x
Hors ligne
=======
C'est ce qu'on apelle le SHEBANG : il ne s'agit donc pas d'un script bash (sinon ce serait : /bin/bash)
mais d'un script qui sera interprété par /bin/sh
qui est un lien symbolique vers l'interpréteur de commandes /bin/dash
=======
il s'agit d'une boucle for assignant à la variable p les valeurs retournées par $(dpkg -l | awk '/^ii/ { print $2 }')
=======
Il y a deux commandes dont la sortie de l'une dpkg -l
est reliée à l'entrée de l'autre awk '/^ii/ { print $2 }'
par un tube (en anglais pipe)
En lisant les pages man de ces deux commandes, tu pourrais comprendre de quoi il s'agit,
mais comme je les connais et que je sais qu'elles ne modifieront pas ton système,
tu peux commencer par entrer la première dans une fenêtre de terminal pour voir ce qui se passe :
ensuite, tu entre la combinaison des deux et tu compare les résultats.
NOTE : La première commande ne retourne pas que des lignes qui commencent pas ii
=======
[ -L "$f" ] <=> si le fichier "$f" existe et est du type lien symbolique retourner un code d'erreur à 0, sinon retourner 1
a || b <=> n'exécuter la commande b que si le code de sortie d'erreur de la commande a est 1
a && b <=> n'exécuter la commande b que si le code de sortie d'erreur de la commande a est 0
Donc :
si le test [ -L "$f" ] n'est pas positif alors { printf "%s: au moins un fichier manquant %s\n" "$p" "$f" && break; }
=======
Je te laisse continuer pour que tu aies le plaisir de découvrir par toi même ce que fait ce script.
N'hésite pas à lire les pages man des commandes :
Dernière modification par MicP (15-01-2017 23:39:51)
Hors ligne
Pages : 1