Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 12/07/2010, à 19:40

Gotita

un test si qui ne fonctionne pas

Bonjour,

J'ai un petit soucis sur un script que j'ai fais, voici le code :

for i in $(seq 0 2)

do
	for j in $(seq 0 9) #Les deux for pour faire les 29 videos
	
	do
		if [ $i$j != 00 ] && [ $i$j < 23 ] # On prend en compte que les 22 premiers
		then
			
			titre=$(sed -n "$i$j"p "listing himym s2") #On recupere le titre de l'episode
			cd /media/"USB"/"TV series"/"How I Met Your Mother"/"Season 2" #On change de repertoire
			episode=$(find -name "*[e E]$i$j*.avi")	#On recupere le nom complet de l'episode
			soustitre=$(find -name "*[e E]$i$j*.srt") #On recupere le nom complet du sous titre
			mv "$episode" "S02E$i$j - $titre.avi" #On modifie le nom de l'episode
			mv "$soustitre" "S02E$i$j - $titre.srt" #On modifie le nom du sous titre
			cd
		fi
	done

done

Explications : J'ai un dossier qui comporte la saison 2 de "How I Met Your Mother" avec les sous titres. Les fichiers vidéos sont de la forme "xxxx S2E12xxxxxx.avi" et donc j'ai récupéré les titres des différents épisodes (dans le fichier "listing himym s2" et hop je change le titre des vidéos et sous titres.

Le soucis vient du  [ $i$j < 23 ] ( car il y a que 22 vidéos), la console me donne "./episode himym.sh: line 13: 23: Aucun fichier ou dossier de ce type"

Donc en attendant je fais :

if [ $i$j != 00 ] && [ $i$j != 23 ] && [$i$j != 24] .......

ainsi de suite jusqu'à 29

donc d'où vient mon soucis?

Merci


La vie d'un geek ne tient souvent qu'à un fil : un câble ethernet.

Hors ligne

#2 Le 12/07/2010, à 20:07

Watael

Re : un test si qui ne fonctionne pas

for i in {0..2}{0..9}; do (( ${i#0} > 0 && ${i#0} < 23 )) && echo "$i"; done

Dernière modification par Watael (Le 12/07/2010, à 20:07)


eval, c'est mal.

Hors ligne

#3 Le 12/07/2010, à 20:31

Gotita

Re : un test si qui ne fonctionne pas

Merci pour vos réponses, maintenant le script fonctionne.

@WW : Je ne savais pas comment faire pour avoir la forme 00,01,etc mais j'ai utilisé la commande de Watael et c'est bon.

Mais il n'y a pas d'équivalence avec les <> ?


La vie d'un geek ne tient souvent qu'à un fil : un câble ethernet.

Hors ligne

#4 Le 13/07/2010, à 11:15

iuchiban

Re : un test si qui ne fonctionne pas

Gotita a écrit :

Mais il n'y a pas d'équivalence avec les <> ?

Voir l'excellent site :
http://abs.traduc.org/abs-fr/apb.html#bincomptab

Donc tu peux utiliser \> et \< mais seulement pour des comparaisons ASCII.
ou bien dans des doubles (( )) comme indiqué par watael


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

Haut de page ↑