Vos scripts bash ou autre - qui vous sert tous les jours

Bonjour,
Ce n’est pas pour poster un bash mais pour vous demander si il m’est possible de mettre en ligne vos créations, accompagnées de votre pseudo bien sûr ?

Pour ma part aucun problème

mais éventuellement avec une redirection ou un lien vers ce topic

Ok, c’est sans problème…
Merci

Mais il te faut l’accord des autres contributeurs donc
wait and see

Bien sûr. :wink: En tout cas merci à toi.

Un script qui ne va servir qu’à une minorité !
Pour ceux qui ont eu du mal à graver leur DVD ; qui ont gravé VIDEO_TS et AUDIO_TS dans un dossier au lieu de les mettre à la racine… Ai-je été clair ??? :lol: Vous pouvez, grâce à ce script accéder au menu de votre DVD. Ce script utilise totem. Bien entendu, il permet aussi de lire un DVD “normal” !


#! /bin/sh

clear
echo "Lecture du DVD..."

if [ -d "/mnt/cdrom/VIDEO_TS" ]; then
	totem dvd://
	exit
else
	echo "[ /mnt/cdrom/VIDEO_TS introuvable... ]"
	for i in /mnt/cdrom/*; do
  if [ -d "$i" ]; then
  	totem "dvd:/$i"
  else
  	echo "$i non valide"
  fi
	done
fi

En espérant vous avoir aidé…
PS : Merci TuSaisQui :super:

Script de feignant pour mettre a jour gentoo :ane:

#!/bin/sh

emerge sync && emerge -vauD world

Comment ca c’est de la merde ? :stuck_out_tongue:

un petit script qui me sert dans le scan total de mes cours… (prepa et écoles d’ingé… ça fait du volumen je vous jure!!! :smiley: ). Donc j’ai cherché à tout automatiser… En fait, je scanne, je convertis en jpeg, et le passe en PDF…
La premiere partie se fait avec ce petit utilitaire qui se charge de convertir de maniere récursive les fichiers de pnm en jpeg, et une fois fait déplace ces mêmes fichiers pnm vers un rep /Pictures qu’il créé dans le rep courant.
L’utilitaire se lance dans le rep courant! Je sais pas si ça servira à qqn! :wink:


#! /bin/sh

# $1 contiendra le chemin... y a t il un pnm dans le rep?
function TST_PNM {
	local j
	for j in "${1%%/}/"*; do
  if [ "${j##*.}" = "pnm" ]; then
  	return 0
  	break
  fi
	done
	return 1
}

# $1 contiendra le chemin...
function MOVE_PNM {
	if [ ! -d ${1%%/}/Pictures ] && TST_PNM ${1%%/}; then
  echo "mkdir, mv des pnm vers ${1%%/}/Pictures en cours..."
  mkdir "${1%%/}/Pictures"
  mv "${1%%/}/"*.pnm "${1%%/}/Pictures"
	fi
}

# $1 contiendra le chemin...
function CONVREC_PNM2JPG {
	for j in "${1%%/}/"*; do
  echo "traitement de $j"
  if [ -d "$j" ]; then
  	if [ "${j##*/}" != "Pictures" ]; then
    CONVREC_PNM2JPG "$j"
  	else
    echo "$j detecte comme /Pictures"
  	fi
  else
  	if [ "${j##*.}" = "pnm" ]; then
    echo "Conversion de $j..."
    pnmtojpeg "$j" > "${j%%.pnm}.jpg"
  	fi
  fi
	done
	MOVE_PNM "$1"
}

# Programme principal...
CONVREC_PNM2JPG $(pwd)
exit 0

euh… Petite question :ane:


function TST_PNM {
	local j
        local i
        i=1
	for j in "${1%%/}/"*; do
                i &= (("${j##*.}" = "pnm"))
	done
	return i
}

J’aurai aimé faire fonctionner initialement cette petite fonction de cette façon, mais le pb, c’est que je ne parviens pas à faire renvoyer par la double parenthèse le résultat du test… et faire un & logique avec la valeur du i précédent… Qqn aurait une idée pour la syntaxe? car elle semble plus simple pour un test avec des chiffres mais en ce qui concerne des tests sur des chaines, c’est pour moi une autre paire de manche.
merci

CedeRhum : Joli et utile le script! Pour la question, je n’en sais rien (vu que je ne scripte qu’en python maintenant).

ps :Dis, tu as vraiment bcp de cours de l’école à scanner?? On ne doit pas parler de la même école (et pour cause ;)) car je n’ai rien gardé d’écrit si ce n’est les poly :slight_smile:

Euh… c’est vrai que pour l’école y’a pas grand chose d’écrit!!! :wink: mais les polys y passent aussi… :smiley: Mais même en faisant attention à tous les paramètres, il faut de la place… c’est hallucinant… (en fait surtout pour les PDF) (je m’attends à qqch comme 25 à 30000 pages au total…). :paf: Vous entendez le doût bruit des disques durs neufs qui arrivent? :wink: :lol:
Au fait, et ce n’est pas du troll… mais toi qui a essayé aussi le perl si je ne m’abuse… que trouves-tu de plus à python? car pour l’instant, je découvre un peu le perl, et je trouve ça pas mal.

EDIT : dsl fausse manip

Ce message n’était pas conforme aux règles d’utilisation du nouveau forum :

EDIT : dsl fausse manip

Salut à tous!
Je suis très intéressé par vos "travaux", et je souhaites me mettre au plus vite au travail!

Le bash, j’ai de vagues notions, mais le python non!
En plus, sur le net, j’ai trouvé un cours sur les scripts en bash, mais pas en python. :frowning:
Donc si vous avez des liens, ou des conseils, je suis preneur.
D’ailleurs vous me conseillez d’aller plus loin dans bash, ou de laisser tomber et passer directement a python…

Sachant que je connais le C/C++!!

Merci de vos conseils!

CedeRhum : Toujours sans troll.
Ce que je reproche à perl est simple : Ce n’est pas lissible. Essaye de faire lire un script perl à un débutant en perl (pas en programmation, juste en perl), il ne comprendra rien.
Python a une syntaxe bcp bcp plus intutif, si bien que même les gens qui ne connaissent pas python arrivent très facilement à comprendre ce que peut bien faire tel ou tel programme. Bref, je suis passé à python car je trouve le code bcp bcp plus lissible que du bash/sed/awk/… ou du perl.

Il est clair que parfois le bash manque un peu de lisibilité… du moins c’est ce que je constate aussi dans mes moulinettes :smiley: à moins que cela ne vienne de moi… :wink: :ane:
Merci de ta réponse fakbill
PS: et t’aurais pas un petit exemple de tes moulinettes en python, histoire d’illustrer tes dires? :slight_smile:

Pour le bash, je pense pouvoir te proposer ce site… Mais de là à te conseiller plus le bash ou python, ben je sêche…pour trouver les raisons…
http://abs.traduc.org/abs-3.4-fr/index.html

dans mon bashrc sous gentoo



alias aftermerge="etc-update && env-update && source /etc/profile"


c’est toujours utiles pour les feignants

une petite aide pour mon premier script, que j’ai fait il y’a peu de temps:


#!/bin/sh
killall esd
killall python

cd /home/malzieu/TransGaming_Drive/Program\ Files/Warcraft\ III_gui/ 
cedega Frozen\ Throne.exe
cd -
exit

gdesklets
esd

En fait quand je lances war3, je veux arréter les desklets ainsi que esd, mais ce qu’il se passe, c’est que je kill esd desklets, je lances war3, mais juste après, le relance esd et desklets.
Je penses qu’ily’a moyen de jouer avec les codes de sorties, mai sj’en suis pas sur. Comment feriez-vous dans un cas comme celui-ci.
Je penses que la solution est une boucle while après l lancement de war3, afin de bloquer la fin du script.
Je me trompes?

EDIT: oui je me trompes, une boucle while c’est beaucoup trop lourd. Mais alors que faire… Je suis degouté j’arrives même pas à faire un truc aussi simple.

Bon je viens de faire des tests, et j’ai avancé un peu. Mon script ressemble à ca maintenant. Il est pas different, je me suis juste amusé à faire des fonctions.



#!/bin/bash
arrete()
{
killall esd
killall python
}

commence()
{
esd &
gdesklets &
}

lance()
{
cd /home/malzieu/TransGaming_Drive/Program\ Files/Warcraft\ III_gui/  
cedega Frozen\ Throne.exe
}


arrete
#cd /home/malzieu/TransGaming_Drive/Program\ Files/Warcraft\ III_gui/  
#cedega Frozen\ Throne.exe 
lance
#while exit=0
#do
#echo " tape ta bite"
#done
commence

Mon problème, c’est que si je fais un copier/coller de mon script dans une console ca marche, mais si je le lances avec sh ca marche pas, et il me lance esd et gdesklet pendant que wwar 3 tourne. Donc ca va pas. PAr contre si je copies/ colles tout le texte, sauf la première ligne ca marche, et si je copies tout ca marche pas!
Ca me soule… Je comprends pas comment ca peut marcher. J’ai l’impression que si je lance le sh, il me fait toutes les lignes sans savoir si la précédente est finie…

Help plz

Edit:
Après essais, ca ne change rien si je fais un copier coller. Pourtant ca me l’avez fait un peu plus tot. C’est assez aléatoire les résultats…

CedeRhum : Hum ça ne va pas intéresser grand mode car se sont des scripts pour le boulot (principalement) donc c’est en privé :slight_smile: