#1576 Le 07/05/2012, à 22:02
- Nanoseb
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Très bonne idée ce script
je me suis permis de modifier pour ne pas avoir a faire deux cp :
copier(){ while (( $# )); do echo "$(pwd)/${1}" >> /tmp/copie; shift; done; }
couper(){ while (( $# )); do echo "$(pwd)/${1}" >> /tmp/couper; shift; done; }
coller () {
if [ -f "/tmp/copie" ]
then
cat /tmp/copie | while read i
do
cp -a "$i" $(pwd)
done
rm /tmp/copie
fi
if [ -f "/tmp/couper" ]
then
cat /tmp/couper | while read i
do
mv -i "$i" $(pwd)
done
rm /tmp/couper
fi
}
Voilà si tu vois des améliorations je suis preneur.
Dernière modification par Nanoseb (Le 07/05/2012, à 22:08)
Hors ligne
#1577 Le 07/05/2012, à 22:54
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
sur les autre forum qu'ils racontent que chez ubuntu sa prend de haut,j'en ais confirmation.
C'est toi qui a déclenché les attaques personnelles, n'inverse pas les rôles.
aufaite t'ai entrain de dire qu'un intervenant ici est un gros gland,puisque c'est ici que j'avais lu le truc sur les tabulation.
Encore une fois, tu ne lis pas ce que j'écris : il a raison dans le cas général, mais ça ne s'applique pas au python. Ceux qui ont décidé qu'il fallait mettre quatre espaces sont des idiots, mais c'est maintenant la règle et vu les spécificités syntaxiques du python il est dangereux de ne pas la suivre.
@Nanoseb :
Tes fonctions « copier » et « coller » plantent si on leur donne un chemin absolu. Certes ce n'est pas le but, mais on sait jamais (on pourrait glisser un chemin absolut au milieu de plusieurs chemins relatifs). Il faudrait une fonction de purge. C'est mal d'utiliser un nom de fichier en dur dans /tmp, ça risque de créer des conflits (autre utilisateur en parallèle, autre programme utilisant le même nom…). Il vaut mieux demander au système de générer son propre nom de fichier. « cat … | … » c'est mal.
[[ "$CC_COPIE" && -w "$CC_COPIE" && -r "$CC_COPIE" ]] || export CC_COPIE=$(mktemp copie.XXXXXXXXXX)
[[ "$CC_COUPE" && -w "$CC_COUPE" && -r "$CC_COUPE" ]] || export CC_COUPE=$(mktemp coupe.XXXXXXXXXX)
function copier {
while [ "$1" ] ; do
if [ "${1:0:1}" = / ] ; then
echo "$1" >> "$CC_COPIE"
then
echo "$PWD/$1" >> "$CC_COPIE"
fi
shift
done
}
function couper {
while [ "$1" ] ; do
if [ "${1:0:1}" = / ] ; then
echo "$1" >> "$CC_COUPE"
then
echo "$pwd/$1" >> "$CC_COUPE"
fi
shift
done
}
function coller {
while read i ; do
cp -a "$i" "$PWD"
done < "$CC_COPIE"
echo -n > "$CC_COPIE"
while read i ; do
cp -a "$i" "$PWD"
done < "$CC_COUPE"
echo -n > "$CC_COUPE"
}
function purge { echo -n > "$CC_COPIE" ; echo -n > "$CC_COUPE" ; }
Bon après, j'ai pas testé. Et je ne sais pas ce qui est plus sûr, « $PWD » ou « $(pwd) ». Si tu te déco-reco souvent, il risque d'y avoir une légère accumulation de fichiers (mais ils sont supprimés au reboot). Si ça te gène, tu peux ajouter ça dans le .bash_logout (auquel cas il est peut-être préférable de supprimer les tests devant les créations de fichiers temporaires) :
rm "$CC_COPIE" "$CC_COUPE"
Il est aussi possible (et peut-être plus sûr) de mettre les créations de fichiers dans les fonctions coupe et colle mais dans ce cas il ne faut pas enlever les tests.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1578 Le 08/05/2012, à 12:25
- nordinatueur
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@Bousky
C'est une bonne idée, mais après avoir testé, ça n'a pas le résultat escompté chez moi !
Par exemple, il n'y a un fichier par instance de terminal et j'aimerais copier dans un terminal et coller dans un autre.
À moins de le mettre dans le .profile, mais je ne suis pas sûr que ça change quelque chose !
À la limite, on peut se proposer ce code :
CC_COPIE="/tmp/copie."$(md5sum <<< "${USER}@${HOSTNAME}"); CC_COPIE=${CC_COPIE% -}
Et ensuite, j'ai amélioré un peu :
Je préfère largement while (( $# )) à while [ "${1}" ] car s'il y a une ligne vide tu vas sortir de la boucle sans regarder le reste. La fonction coller vérifie que l'on n'essaye pas de copier un fichier deux fois. C'est surtout utile pour couper mais puisque j'utilise l'option -i c'est aussi très préférable pour copier.
function copier {
while (( $# )); do
case ${1:0:1} in
'/')
echo "${1}" >> "${CC_COPIE}";;
'~')
echo "${HOME}/${1}" >> "${CC_COPIE}";;
*)
echo "${PWD}/${1}" >> "${CC_COPIE}";;
esac;
shift;
done;
}
function coller {
touch ${CC_COPIE} ${CC_COUPE};
sort -u ${CC_COPIE} | while read i ; do
cp -ai "${i}" "${PWD}";
done;
> "${CC_COPIE}";
sort -u ${CC_COUPE} | while read i ; do
mv -ai "${i}" "${PWD}";
done;
> "${CC_COUPE}";
}
Dernière modification par nordinatueur (Le 23/05/2012, à 12:08)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#1579 Le 08/05/2012, à 12:42
- Neko62
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je vus remercie pour votre aide,
une fois les corrections apportées :
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Un app-indicator très simple qui ouvre des post-it placés dans un dossier
# créé par Pseudomino à partir de indicator-places le 18/12/2011
#
import os
import gtk
import gio
import signal
import subprocess
import appindicator
import urllib
APP_NAME = 'indicator-post-it'
APP_VERSION = '0.1'
class IndicatorPostit:
def __init__(self):
self.ind = appindicator.Indicator("post-it", "tomboy", appindicator.CATEGORY_APPLICATION_STATUS)
self.ind.set_status(appindicator.STATUS_ACTIVE)
self.update_menu()
def create_menu_item(self, label, icon_name):
image = gtk.Image()
image.set_from_icon_name(icon_name, 24)
item = gtk.ImageMenuItem()
item.set_label(label)
item.set_image(image)
item.set_always_show_image(True)
return item
# Méthode pour créer un menu
def update_menu(self, widget = None, data = None):
# Créer le menu
menu = gtk.Menu()
self.ind.set_menu(menu)
# Lister les post-it
listing = os.listdir('/home/nicolas/Post-it/');
for path in listing:
item = self.create_menu_item(path, "tomboy")
item.connect("activate", self.on_postit_click, path)
menu.append(item)
# Afficher le menu
menu.show_all()
# Ouvrir un post-it
def on_postit_click(self, widget, path):
subprocess.Popen('gedit ~/Post-it/' + path, shell = True)
if __name__ == "__main__":
# Catch CTRL-C
signal.signal(signal.SIGINT, lambda signal, frame: gtk.main_quit())
# Lancer l'indicator
i = IndicatorPostit()
# Boucle gtk principale
gtk.main()
le script lancé me donne comme erreur cette fois ci :
Traceback (most recent call last):
File "/home/nicolas/.script_perso/Post-it-indicator.py", line 19, in <module>
class IndicatorPostit:
File "/home/nicolas/.script_perso/Post-it-indicator.py", line 48, in IndicatorPostit
item = self.create_menu_item(path, "tomboy")
NameError: name 'self' is not defined
comment définir cette variable ?
Hors ligne
#1580 Le 10/05/2012, à 17:26
- Neko62
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
up !
Hors ligne
#1581 Le 11/05/2012, à 00:59
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Cette ligne de code n'est pas dans une méthode (il n'y a donc pas de « self »). C'est normal ?
Au fait, quand tu poste du code avec une erreur mentionnant une ligne, au lieu de poster le fichier, poste le résultat de la commande « nl -ba fichier » ou « cat -n fichier ».
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1582 Le 11/05/2012, à 08:44
- Dell-ubuntu
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour à tous,
J'ai un script à proposer, qui n'est pas de moi, je l'ai trouvé ici : LavrenEncoder
Avec un appareil photo numérique on peut filmer, les vidéos sont en .MOV
Ce format est de bonne qualité mais son transcodage n'est pas aisé : http://forum.ubuntu-fr.org/viewtopic.php?id=889431
LavrenEncoder permet de transcoder ses .MOV en différents formats, en choisissant les dimentions de la vidéo finale, ses bitrates audio et vidéo , etc ... exactement comme on le désire.
Voici le script LavrenEncoder :
#!/bin/bash
## Script pour DéBlogToi.com
## Créé par Lavren, le 29 décembre 2008.
## Version 0.1
input_file=$1
echo "écrivez le nom de la vidéo de sortie (sans extension) "
read output_file_name
echo "Quel codec vidéo voulez-vous utiliser pour votre nouvelle vidéo ? Choississez en tapant un numéro"
OPTIONS="x264"
select video_codec in $OPTIONS; do
if [ "$video_codec" = "x264" ]; then
output_video_codec="libx264"
echo "OK, x264 pour un encodage H.264"
echo "Quelle extension voulez-vous utiliser pour votre nouvelle vidéo ? Choississez en tapant un numéro"
OPTIONS="mov mp4 3gp avi"
select video_opt in $OPTIONS; do
if [ "$video_opt" = "mov" ]; then
output_file_extension="mov"
echo "OK pour l'extension $audio_opt"
break
elif [ "$video_opt" = "mp4" ]; then
output_file_extension="mp4"
echo "OK pour l'extension $audio_opt"
break
elif [ "$video_opt" = "avi" ]; then
output_file_extension="avi"
echo "OK pour l'extension $audio_opt"
break
else
echo "Non valide"
exit
fi
done
echo "Quel codec audio voulez-vous utiliser pour votre nouvelle vidéo ? Choississez en tapant un numéro"
OPTIONS="aac mp3 flac"
select audio_opt in $OPTIONS; do
if [ "$audio_opt" = "aac" ]; then
output_file_audiocodec="libfaac"
echo "OK, le codec $audio_opt pour l'audio"
break
elif [ "$audio_opt" = "mp3" ]; then
output_file_audiocodec="libmp3lame"
echo "OK, le codec $audio_opt pour l'audio"
break
elif [ "$audio_opt" = "flac" ]; then
output_file_audiocodec="flac"
echo "OK, le codec $audio_opt pour l'audio"
break
else
echo "Non valide"
exit
fi
done
break
else
echo "Non valide"
exit
fi
done
echo "Quelle largeur de vidéo en pixels ? Il est recommandé d'utiliser des multiples de 16 comme 1280, 720, 640, 320"
read output_file_width
echo "Quelle hauteur de vidéo en pixels ? Attention aux proportions de votre vidéo (16:9, 4:3, 3:2 => 1280x720, 1280x1024, 1200x800)"
read output_file_height
echo "Quel taux (bitrate) souhaitez-vous pour votre vidéo, en kbps ? Pour le web, il est recommandé entre 500 et 2000 selon la qualité."
read output_file_bitrate
echo "Quel taux (bitrate) souhaitez-vous pour l'audio ? Exemple : 192 -> qualité CD, 128 -> excellente qualité, 96 -> juste assez bon pour le web"
read output_file_audiorate
## Confirmation
echo "Voici les détails de l'encodage de votre vidéo :"
echo "Nom du fichier : $output_file_name.$output_file_extension"
echo "Largeur : $output_file_width px"
echo "Hauteur : $output_file_height px"
echo "Codec video : $video_codec"
echo "Bitrate video: $output_file_bitrate kbps"
echo "Codec audio : $audio_opt"
echo "Bitrate audio : $output_file_audiorate kbps"
echo "Ces réglages sont-ils corrects ? [o/n]"
read output_file_confirm
if [ $output_file_confirm = 'n' ] || [ $output_file_confirm = 'N' ]
then
echo "OK, réessayez...."
exit
else
echo "Excellent. Votre fichier va maintenant être généré. Cela peut prendre un moment selon la puissance de votre processeur."
fi
# Encodage
ffmpeg -i ${input_file} -vcodec ${output_video_codec} -acodec ${output_file_audiocodec} -ab ${output_file_audiorate}k -vpre hq -b ${output_file_bitrate}k -s ${output_file_width}x${output_file_height} -f ${output_file_extension} ${output_file_name}.${output_file_extension}
echo "Votre fichier a été créé."
## Appliquer qt-faststart
if [ $output_file_extension = 'mov' ] || [ $output_file_extension = 'mp4' ]
then
echo "Voulez vous appliquer qt-faststart, pour le streaming ? [o/n]"
read qt_faststart_permis
if [ $qt_faststart_permis = 'o' ] || [ $qt_faststart_permis = 'O' ]
then
mv ${output_file_name}.${output_file_extension} ${output_file_name}_temp.${output_file_extension}
qt-faststart ${output_file_name}_temp.${output_file_extension} ${output_file_name}.${output_file_extension}
echo "QuickTime Fast Start a été appliqué sur la vidéo"
rm ${output_file_name}_temp.${output_file_extension}
echo "C'est terminé ! Merci d'avoir utilisé LavrenEncoder"
else
echo "C'est terminé ! Merci d'avoir utilisé LavrenEncoder"
fi
else
echo "C'est terminé ! Merci d'avoir utilisé LavrenEncoder"
fi
Son utilisation est simple.
-1- On clique de droite dessus: Propriétés/Permissions/"Autoriser l'exécution du fichier comme un programme".
-2- En console cd + chemin oû se trouve le .MOV à transcoder, on glisse le script puis le fichier.MOV dans la console + Entrée
Pour ceux qui ne sauraient pas quel bitrate vidéo choisir, voici la règle de calcul pour les .avi :
il ya une formule pour déterminer le débit maximum "utile" en DivX pour un périphérique.
En règle générale la valeur "bits par pixel" est de 0.22
bitrate = (largeur x hauteur x "bits par pixel" x images par seconde) / 1024
exemples :
(640x480x0.22x30) / 1024 = 1980 kbit / seconde
(480x200x0.22x25) / 1024 = 515 kbps
(480x272x0.22x25) / 1024 = 701 kbps
(320x240x0.22x25) / 1024 = 412 kbps
Comme c'est la seule méthode que j'ai pu trouver pour que mes vidéos finales n'aient pas le son décalé par rapport à l'image, je propose que ce script, que j'ai trouvé fort utile, soit présent dans la documentation.
Voir aussi ce post.
Dernière modification par Dell-ubuntu (Le 26/05/2012, à 20:46)
#1583 Le 14/05/2012, à 17:24
- Arcadia
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour à tous,
Après moult recherches (bon O.K., j'ai abandonné après deux heure et demi de recherches) sur plusieurs OS, je n'arrive pas à trouver un programme qui fait ce que je voudrait faire, il me faut donc un script adapté mais j'avoue que ce n'est pas mon dada et que je suis vite limité quand ça devient un tantinet complexe.
Je m'explique:
-> J'ai un dossier dans lequel traine environs 2500 fichiers tous sous la forme "Une chaine de mot - titre.extension" ou "Autre chose - titre.extension"
-> Je voudrais trier ces fichier d'après la chaine de mot d'avant le "-" dans un dossier à ce nom, c'est à dire faire en sorte que tous les fichier commençant, par exemple, par "Une chaine de mot" soit dans un fichier nommé "Une chaine de mot" et les fichier commençant par "autre chose" dans un dossier "autre chose".
C'est peut être pas hyper compliqué mais j'avoue ne pas parvenir à grand chose.
Dans mon esprit il me semble qu'il faille lister les fichier par titre et faire un mkdir puis un mv au fur et à mesure jusqu'à ce qu'un fichier soit épuisé puis rebelotte, mais je vois difficilement comment mettre ça en oeuvre...
Ca vous inspire quelque chose ?
Merci !
Hors ligne
#1584 Le 14/05/2012, à 19:56
- Hizoka
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
tres simple en effet...
while read
do
a="${REPLY%-*}"
[[ ! -d "${a}" ]] && mkdir "${a}"
mv "${REPLY}" "${a}"
done < <(ls "${PWD}")
alors la, ca fait comme tu as dit.
Pas de changement de nom des fichiers
j'ai coupé du - jusqu'à la fin, mais si il y a un espace avant le -, il est pris en compte (si il y a toujours un espace avant le -, utiliser : a="${REPLY% -*}"
et voila....
Ex :
ls -1
pipo - fichier 1.tct
pipo - papa.cfg
pipo - plue.txt
popo - fichier 1.tct
popo - papa.cfg
popo - plue.txt
while read
do
a="${REPLY% -*}"
[[ ! -d "${a}" ]] && mkdir "${a}"
mv "${REPLY}" "${a}"
done < <(ls "${PWD}")
ls -R
.:
pipo popo
./pipo:
pipo - fichier 1.tct pipo - papa.cfg pipo - plue.txt
./popo:
popo - fichier 1.tct popo - papa.cfg popo - plue.txt
Dernière modification par Hizoka (Le 14/05/2012, à 20:01)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#1585 Le 15/05/2012, à 10:20
- Arcadia
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
tres simple en effet...
while read do a="${REPLY%-*}" [[ ! -d "${a}" ]] && mkdir "${a}" mv "${REPLY}" "${a}" done < <(ls "${PWD}")
alors la, ca fait comme tu as dit.
Pas de changement de nom des fichiers
j'ai coupé du - jusqu'à la fin, mais si il y a un espace avant le -, il est pris en compte (si il y a toujours un espace avant le -, utiliser : a="${REPLY% -*}"et voila....
Merci, J'ai privilégié la seconde solution (a="${REPLY% -*}") et cela marche très bien !
Hors ligne
#1586 Le 15/05/2012, à 16:37
- Hizoka
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
pour info, si tu veux que ton fichier "nom commum - nom fichier" soit deplacé dans "nom comun" et s'appelle "nom fichier".
il te suffit de modifier cette ligne :
mv "${REPLY}" "${a}"
en
mv "${REPLY}" "${a}/${REPLY#*- }"
mais dans tous les cas, les noms de tes fichiers ne doivent contenir qu'un seul tiret -
Dernière modification par Hizoka (Le 15/05/2012, à 16:38)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#1587 Le 17/05/2012, à 04:38
- nordinatueur
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
@Arcadia et @Hizoka,
metamorphose, qui n'est pas dans les dépôts, permet de renommer les fichiers avec un gui très réussi. En particulier, si le nom final contient des slash /, alors metamorphose créera les dossiers qu'il faut pour que ça fonctionne !
Edit : http://file-folder-ren.sourceforge.net/
Aussi essayez :
echo ${REPLY/-/\/} # remplace le premier «-» par «/»
echo ${REPLY//-/\/} # remplace tous les «-» par «/»
@communauté :
Petit script pour changer la luminosité dans Precise :
(Je ne sais pas comment ça marchait dans Oneiric car j'ai sauté une distro mais avant ce n'était pas comme ça.)
#!/bin/bash
# Créé par Nordinatueur
#Définit si le script se relance automatiquement en root ou pas. (true=vrai, false=faux)
relancerAutoRoot=true;
if [[ $(whoami) != "root" ]]; then
if ${relancerAutoRoot}; then
echo "sudo ${0##*/} $@" && sudo ${0} $@ ;
else
echo "Il faut être root pour lancer ce script.";
fi;
exit;
else
#Fichier de luminosité
BN="/sys/class/backlight/acpi_video0/brightness";
maxB=$(cat /sys/class/backlight/acpi_video0/max_brightness);
fin() { echo "${1}"; exit; }
Usage()
{
cat<<-EOF
Usage :
${0##*/} <option>
-h Affiche cette aide
N Définit la luminosité à N. (N est compris entre 0 et ${maxB})
-N Enlève N à la luminosité courante. (si possible)
+N Ajoute N à la luminosité courante. (si possible)
+/- Ajoute/Enlève 1 à la luminosité courante. (si possible)
min/max Met la luminosité au min/max.
EOF
exit;
}
case ${1} in
-h|--help)
Usage;;
-path)
echo ${0};
exit;;
[0-9])
b=${1}; [[ ${b} -ge ${maxB} ]] && b=${maxB};
echo ${b} > ${BN};;
+[0-9]|+)
b=$(cat ${BN}); [[ ${b} -ge ${maxB} ]] && fin "Luminosité maximale...";
s=${1#+}; [[ ${s} == "" ]] && s=1;
s=$((b+s));
[[ ${s} -gt ${maxB} ]] && s=${maxB};
echo ${s} > ${BN};;
-[0-9]|-)
b=$(cat ${BN}); [[ ${b} -le 0 ]] && fin "Luminosité minimale..." ;
s=${1#-}; [[ ${s} == "" ]] && s=1;
s=$((b-s));
[[ ${s} -lt 0 ]] && s=0;
echo ${s} > ${BN};;
min)
b=$(cat ${BN}); [[ ${b} -eq 0 ]] && fin "Luminosité minimale..." ;
echo 0 > ${BN};;
max)
b=$(cat ${BN}); [[ ${b} -ge ${maxB} ]] && fin "Luminosité maximale...";
echo ${maxB} > ${BN};;
*)
fin "Argument invalide";;
esac;
b=$(cat ${BN});
echo "Luminosité ${b}/${maxB}...";
fi;
Astuces :
Pour que le script se relance avec sudo automatiquement et vous demande votre mot de passe, il suffit de remplacer à la ligne 5 « relancerAutoRoot=true; » par « relancerAutoRoot=false; »
Et pour qu'il ne demande plus le mot de passe : ATTENTION***
Tout d'abord mettre le script dans un endroit où vous n'avez pas le droit de le modifier. Par exemple /usr/local/bin, ou /opt. Le permier est très bien car il est dans le PATH en général.
Éditer /etc/sudoers :
sudo visudo
Ajouter la ligne :
%users localhost = NOPASSWD: /usr/local/bin/setBrightness
***ATTENTION !
Si vous mettez cette ligne dans le sudoers il faut absolument que le fichier (votre script) ne soit pas éditable sans les droits administrateur !
Dans le cas contraire n'importe quelle commande pourrait être insérée dans votre script et exécutée avec les droits administrateurs sans demande de mot de passe !
Ici j'ai mis mon script dans /usr/local/bin, donc pour le modifier il faut être root ou avoir ses droits sur le dossier !
Edit: (modification du script et du chemin /usr/local/bin)
Dernière modification par nordinatueur (Le 04/06/2012, à 15:20)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#1588 Le 17/05/2012, à 04:45
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
#!/bin/bash # Créé par Nordinatueur if [[ $(whoami) != "root" ]]; then echo "Vous devez avoir les droits d'administeur pour effectuer cette action..."; #sudo ${0} $@ ; else BN="/sys/class/backlight/acpi_video0/brightness"; fin() { echo "${1}"; exit; } case ${1} in -path) echo ${0}; exit;; [0-7]) b=${1}; echo ${b} > ${BN};; +[0-7]|+) b=$(cat ${BN}); [[ ${b} -eq 7 ]] && fin "Luminosité maximale..."; s=${1#+}; [[ ${s} == "" ]] && s=1; b=$((b+s)); [[ ${b} -gt 7 ]] && b=7; echo ${b} > ${BN};; -[0-7]|-) b=$(cat ${BN}); [[ ${b} -eq 0 ]] && fin "Luminosité minimale..." ; s=${1#-}; [[ ${s} == "" ]] && s=1; b=$((b-s)); [[ ${b} -lt 0 ]] && b=0; echo ${b} > ${BN};; *) fin "Argument invalide";; esac; echo "Luminosité ${b}/7..."; fi;
C'est marrant tous ces « ; », on dirait du C
Pour ce qui est de mettre des scripts personnels dans le path, on utilise traditionnellement « /usr/local/bin ». Les autres dossiers sont plutôt réservés aux installations automatiques.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1589 Le 17/05/2012, à 05:04
- nordinatueur
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Merci j'en tiens compte !
Et oui je garde une syntaxe la plus propre possible pour ne pas perdre les bonnes habitudes !
Edit :
@Dell-ubuntu
Merci ! J'avais quelques MOV qui trainaient et j'ai jamais eu le courage de chercher pour ça puisque totem les gérait (bien que difficilement et aléatoirement...) C'est pas faute de m'être farci du mencoder et sa doc à la pelle à une époque !
Dernière modification par nordinatueur (Le 17/05/2012, à 05:15)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#1590 Le 17/05/2012, à 14:56
- TraGiKomiK
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
@nordinatueur: J'obtiens ces erreurs en executant ton script:
./luminosite.sh: ligne 50: avertissement : « here-document » à la ligne 12 délimité par la fin du fichier (au lieu de « EOF »)
./luminosite.sh: ligne 51: Erreur de syntaxe : fin de fichier prématurée
Merci de mettre [RESOLU] dans le titre de votre post une fois le probleme reglé!
GNU/Linux -> \o/
Hors ligne
#1591 Le 17/05/2012, à 17:01
- twocats
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Ça devrait aller mieux comme ça :
#!/usr/bin/env bash
# Créé par Nordinatueur
if [[ $(whoami) != "root" ]]
then
#sudo ${0} $@
exit
fi
BN="/sys/class/backlight/acpi_video0/brightness";
Usage()
{
echo "
Usage :
${0##*/} <option>
-h Affiche cette aide
N Définit la luminosité à N. (N est compris entre 0 et 7)
-N Enlève N à la luminosité courante. (si possible)
+N Ajoute N à la luminosité courante. (si possible)
+/- Ajoute/Enlève 1 à la luminosité courante. (si possible)"
}
case ${1} in
-h|--help)
Usage;exit ;;
-path)
echo ${0}
exit ;;
[0-7])
b=${1}
echo ${b} > ${BN} ;;
+[0-7]|+)
b=$(cat ${BN}); [[ ${b} -eq 7 ]] && fin "Luminosité maximale..."
s=${1#+}; [[ ${s} == "" ]] && s=1
b=$((b+s))
[[ ${b} -gt 7 ]] && b=7
echo ${b} > ${BN} ;;
-[0-7]|-)
b=$(cat ${BN}); [[ ${b} -eq 0 ]] && fin "Luminosité minimale..."
s=${1#-}; [[ ${s} == "" ]] && s=1
b=$((b-s))
[[ ${b} -lt 0 ]] && b=0
echo ${b} > ${BN} ;;
*)
echo "${1} Argument invalide"; exit ;;
esac
echo "Luminosité ${b}/7..."
Propre..?
La réponse est 42
Hors ligne
#1592 Le 21/05/2012, à 12:34
- TraGiKomiK
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
merci twocats pour la correction
@nordinatueur: tres utile et simple d'utilisation ton script, adopré
Merci de mettre [RESOLU] dans le titre de votre post une fois le probleme reglé!
GNU/Linux -> \o/
Hors ligne
#1593 Le 22/05/2012, à 04:22
- pingouinux
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
@nordinatueur: J'obtiens ces erreurs en executant ton script:
./luminosite.sh: ligne 50: avertissement : « here-document » à la ligne 12 délimité par la fin du fichier (au lieu de « EOF »)
./luminosite.sh: ligne 51: Erreur de syntaxe : fin de fichier prématurée
Explication :
cat<<-EOF permet d'indenter les lignes suivantes avec des tabulations. Un copier-coller à la souris du script de nordinateur #1588 a remplacé les tabulations par des espaces, et ça ne fonctionne plus.
Voici un extrait de man bash, rubrique Here Documents :
If the redirection operator is <<-, then all leading tab characters are
stripped from input lines and the line containing delimiter.
Hors ligne
#1594 Le 22/05/2012, à 10:31
- nordinatueur
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Explication :
cat<<-EOF permet d'indenter les lignes suivantes avec des tabulations. Un copier-coller à la souris du script de nordinateur #1588 a remplacé les tabulations par des espaces, et ça ne fonctionne plus.
Voici un extrait de man bash, rubrique Here Documents :
If the redirection operator is <<-, then all leading tab characters are stripped from input lines and the line containing delimiter.
J'adore ce forum !
@twocats, merci, ça fonctionnera mieux comme ça pour les transferts par copier/coller.
Pour mon utilisation personnelle je préfère quand même cat.
@pingouinux, merci beaucoup pour la précision, l'explication claire avec un extrait du man pour appui !! Je crois que sur le forum je n'aurais pas vu l'erreur. D'autant qu'elle ne se produisait pas avant puisque je prenais l'habitude de mettre le EOF en début de ligne, sans tabulation !
@TraGiKomiK, partager sur ce forum c'est bien plus que du partage ! Ça nous revient toujours en mieux !
C'est pour ça je pense que le libre et ubuntu en particulier n'est pas prêt de disparaître quelles que soient les grandes puissances monopolistes qui émergeront... Vive le libre !
adopré
Entre adopté et adoré ?
Edit : J'ai apporté un petit gradient pour mettre la luminosité aux max/min...
#!/bin/bash
# Créé par Nordinatueur
if [[ $(whoami) != "root" ]]; then
echo "sudo ${0##*/} $@" && sudo ${0} $@ ;
exit;
else
#Période pour définir les luminosités max et min.
dt=0.05;
#Fichier de luminosité
BN="/sys/class/backlight/acpi_video0/brightness";
maxB=$(cat /sys/class/backlight/acpi_video0/max_brightness);
fin() { echo "${1}"; exit; }
Usage()
{
cat<<-EOF
Usage :
${0##*/} <option>
-h Affiche cette aide
N Définit la luminosité à N. (N est compris entre 0 et ${maxB})
-N Enlève N à la luminosité courante. (si possible)
+N Ajoute N à la luminosité courante. (si possible)
+/- Ajoute/Enlève 1 à la luminosité courante. (si possible)
min/max Met la luminosité au min/max.
EOF
exit;
}
case ${1} in
-h|--help)
Usage;;
-path)
echo ${0};
exit;;
[0-9])
b=${1}; [[ ${b} -ge ${maxB} ]] && b=${maxB};
echo ${b} > ${BN};;
+[0-9]|+)
b=$(cat ${BN}); [[ ${b} -ge ${maxB} ]] && fin "Luminosité maximale...";
s=${1#+}; [[ ${s} == "" ]] && s=1;
s=$((b+s));
[[ ${s} -gt ${maxB} ]] && s=${maxB};
while [[ ${b} -lt ${s} ]];do ((b++)); echo ${b} > ${BN}; sleep ${dt}; done;;
-[0-9]|-)
b=$(cat ${BN}); [[ ${b} -le 0 ]] && fin "Luminosité minimale..." ;
s=${1#-}; [[ ${s} == "" ]] && s=1;
s=$((b-s));
[[ ${s} -lt 0 ]] && s=0;
while [[ ${b} -gt ${s} ]];do ((b--)); echo ${b} > ${BN}; sleep ${dt}; done;;
min)
b=$(cat ${BN}); [[ ${b} -eq 0 ]] && fin "Luminosité minimale..." ;
while [[ ${b} -gt 0 ]];do ((b--)); echo ${b} > ${BN}; sleep ${dt}; done;;
max)
b=$(cat ${BN}); [[ ${b} -ge ${maxB} ]] && fin "Luminosité maximale...";
while [[ ${b} -lt ${maxB} ]];do ((b++)); echo ${b} > ${BN}; sleep ${dt}; done;;
*)
fin "Argument invalide";;
esac;
echo "Luminosité ${b}/${maxB}...";
fi;
Dernière modification par nordinatueur (Le 22/05/2012, à 11:12)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#1595 Le 22/05/2012, à 20:30
- Marukakuru
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je me suis fait un petit script de récupération automatique des notes de pistes audio depuis MusicBrainz (un peu comme XBMC récupère la note des films depuis IMDb). Bon, ça ne marche que pour les pistes Flac, mais je pense qu'on peut adapter rapidement pour du Ogg Vorbis. La note est enregistrée pour Banshee, et sous un format qui devrait être compatible avec XBMC, et il est facile d'adapter le système pour tout lecteur la lisant depuis les tags (par exemple MediaMonkey, mais pas Rhythmbox ?). On peut mettre en paramètre un dossier, sinon il scanne et note depuis le dossier courant.
A noter qu'il faut installer flac et bc pour que le script fonctionne, et que le Flac soit encodé avec un lecteur qui exploite MusicBrainz pour récupérer les metadata, comme par exemple Banshee.
Je vous livre la bête dans son jus:
#!/bin/bash
# Fonction de notation et d'affichage des pistes
function ratingTrack {
# Si aucun flac n'est trouvé, sortie
if [ ! -e "$1" ]
then
echo "No Flac track found…"
exit 0
fi
# Affichage du nom du fichier
echo -n "$1"
# Récupération de la note sur MusicBrainz
trackid=`metaflac --show-tag=MUSICBRAINZ_TRACKID "$1" | cut -d'=' -f2`
rating=`wget -q -O - http://musicbrainz.org/ws/1/track/$trackid?inc=ratings | cut -d'"' -f11 | cut -d'>' -f2 | cut -d'<' -f1`
# S'il y a une note…
if [ $rating ]
then
# Définition des tags à ajouter et des coefficients multiplicateurs à appliquer (MB renvoie une note sur 5)
# A noter que Bash ne comprend que les nombres entiers! Si le coef. est inférieur à 1, le mettre sous forme de fraction
for t in {"RATING|1","RATING:BANSHEE|1/5"}
do
tag=`echo $t | cut -d'|' -f1`
coef=`echo $t | cut -d'|' -f2`
# Les tags sont effacés et recréés
metaflac --remove-tag=$tag "$1"
metaflac --set-tag=$tag=`echo "(($rating*$coef))" | bc -l` "$1"
done
# Affichage de la note (sur 5 étoiles) à droite du terminal
stars=""
for j in `seq 1 $rating`
do
stars=$stars"*"
done
col=`expr $(tput cols)`
if (( ((${#1}%$col)) <= (($col-5)) ))
then
col=`expr $col - ${#1} % $col`
else
printf "\n"
fi
printf "%${col}s" "$stars"
fi
printf "\n"
}
# Utilise le chemin passé en paramètre, sinon le chemin courant
if [ -n "$1" ]
then
searchhere=`echo "$1"`
else
searchhere=`echo $PWD`
fi
# Appel de la fonction ratingTrack sur les fichiers *.flac trouvés
export -f ratingTrack
find "$searchhere" -type f -name '*.flac' -exec bash -c 'ratingTrack "$0"' {} \;
Edit du 06/06/2012: petites améliorations pour mieux supporter l'absence de note dans MusicBrainz
Dernière modification par Marukakuru (Le 06/06/2012, à 22:07)
9ème corollaire à la loi de Murphy : "L'Univers n'est pas indifférent à l'intelligence, il lui est activement hostile."
Hors ligne
#1596 Le 26/05/2012, à 23:18
- yrieix
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
J'aurais aimé savoir si quelqu'un pouvait/savait/voudrait faire un script pour voyager 12.04 concernant le niveau de luminosité au démarrage (qui se remet au automatiquement minimum à chaque fois) ?
En fait j'ai installé voyager sur le pc portable d'une personne et j'aimerais pas qu'elle fasse plusieurs fois "fn + luminosité +" à chaque démarrage...
Je pense aussi que ce script pourrait servir à quelques personnes sous Ubuntu :
Qui à priori n'ont pas trouvé de solution non plus.
Merci à tous de m'avoir lu et à bientôt,
@+
Emancipate yourselves from mental slavery
Hors ligne
#1597 Le 27/05/2012, à 11:20
- nordinatueur
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Mon script ici :
./viewtopic.php?pid=9289911#p9289911
Si tu suis les instructions du premier post tu pourras l'utiliser sans mot de passe et donc intégrer la commande dans .profile ou autostart (évite bashrc) ...
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#1598 Le 27/05/2012, à 11:34
- yrieix
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
J'hallucine, c'était trois posts au dessus, quel boulet que je fais
Je teste ça dès cette après-midi et te dis si ça fonctionne sous voyager.
Merci!
Emancipate yourselves from mental slavery
Hors ligne
#1599 Le 28/05/2012, à 20:51
- le hollandais volant
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
J'aurais aimé savoir si quelqu'un pouvait/savait/voudrait faire un script pour voyager 12.04 concernant le niveau de luminosité au démarrage (qui se remet au automatiquement minimum à chaque fois) ?
Est-ce vraiment necéssaire d’avoir un script énorme pour ça ?
la simple commande suivant placée en application au démarrage devrait suffire :
xbacklight -set 80
(nécéssite le paquet xbacklight, et le 80 correspond au pourcentage).
Hors ligne
#1600 Le 29/05/2012, à 16:25
- kurapika29
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
De mon côté xbacklight ne fonctionne pas il me dit "no outputs have properties"
Du coup j'ai fouiller un peu et j'ai trouvé en faisant ce petit script
#!/bin/sh
# Copier le script dans /usr/local/bin/ à l'aide du terminal et si il se trouve dans votre $HOME :
# "sudo cp ~/backlight.sh /usr/local/bin/"
# Puis le rendre exécutable :
# "sudo chmod u+x /usr/local/bin/backlight.sh"
# Pour le faire fonctionner, dans un terminal entrer :
# "sudo VISUAL=/usr/bin/gedit visudo"
# puis ajouter à la fin
# "kura ALL=NOPASSWD: /usr/local/bin/backlight.sh"
# et c'est tout, après dans autostart il suffit de mettre
# "sudo /usr/bin/backlight.sh"
sh -c 'echo 9 > /sys/class/backlight/acpi_video0/brightness'
exit 0
Si ça peut aider certains
9 est mon brightnessmax à vous de voir comme vous voulez
Dernière modification par kurapika29 (Le 04/06/2012, à 19:10)
Disponible sur IRC, sur le serveur irc.freenode.net salon ##ubuntu-voyager (et aussi sur plein d'autre serveur/salon)
Venez si vous avec besoin d'aide ou pour causer ;) suffit d'avoir Xchat ou un autre client IRC
Où sinon en cliquant sur se lien http://kiwiirc.com/client/irc.freenode. … tu-voyager
Hors ligne