Bonjour.
je cherche à personnaliser mon bash, en modifiant la variable d'environnement PS1.
Et je bute sur une difficulté: je ne trouve pas la séquence qui indique, quel que soit le dossier, son chemin complet. En effet, si je mets "\w" ou "\W", le dossier personnel est systématiquement abrégé en "~", ce que je ne veux pas.
Est-ce possible d'afficher toujours le chemin courant dans le prompt?
J'ai essayé d'utiliser $pwd dans PS1, mais forcément la valeur enregistrée dans PS1 (…)
Forum Programmation.shell bash imagemagick display
Forum Programmation.shell script bash , OK sous ubuntu 7.10 mais KO sous ubuntu 8.04
voila j'ai modifié un petit script , il se lance sans problème sous gusty mais sous hardy il me retourne une erreur incompréhensible . Quelqu'un peut m'expliquer ?
gnu@robby:~/faust2.0/voice$ sh faustus2.sh
# execute un random dans l'interval(%) `ls *ogg | wc -l`
line=$(($RANDOM%`ls *wav | wc -l`))
+ ls test.wav test2.wav test3.wav test4.wav test5.wav
+ wc -l
faustus2.sh: 8: arithmetic expression: expecting primary: "%5"
gnu@robby:~/faust2.0/voice$ cat faustus2.sh
#!/bin/bash
#SCRIPT PLAY OGG
set -xv
# execute un random dans l'interval(%) `ls (…)
Forum Programmation.shell execution script bash d'un sous répertoire
Une question triviale : j'essaye de faire executer un script dans un sous répertoire et je ne comprend pas pourquoi bash ne l'execute pas (après avoir déjà regarder que les permissions sont ok )
exemple :
lorsque j'execute du répertoire courant contenant dir1 , sh dir1/myscript.sh , il n'execute pas le touch .. Par contre si je vais dans dir1 et que je l'execute il le fait bien .
j'ai loupé qqch ?
exemple :
me@robby:~/faustest$ !512
cat dir1/myscript.sh
#!/bin/bash
touch fichier
lorsque j'execute du répertoire courant contenant dir1 , sh dir1/myscript.sh , il n'execute pas le touch .. Par contre si je vais dans dir1 et que je l'execute il le fait bien .
j'ai loupé qqch ?
Forum Programmation.shell Changer l'ordre de mes paramètres de fonction
Bonjour,
je cherche à utiliser sed pour changer l'ordre de mes paramètres de fonction
Exemple: foo($bar,$plop,$toto)
doit devenir: foo($toto,$bar,$plop)
Mon idée aurait été de faire
sed 's/foo(\(.*\),\(.*\),\(.*\))/foo($3,$1,$2)/'
Sed détecte bien le patern mais je me retrouve bel et bien avec foo($3,$1,$2) et non pas foo($toto,$bar,$plop)
Comment faire pour que sed remplisse la valeur de chaque $ ??
Merci d'avance
Uld
PS: je ne cherche à faire ca qu'avec sed, il se peut que d'autre solution plus simple plus esthétiques existent, (…)
je cherche à utiliser sed pour changer l'ordre de mes paramètres de fonction
Exemple: foo($bar,$plop,$toto)
doit devenir: foo($toto,$bar,$plop)
Mon idée aurait été de faire
sed 's/foo(\(.*\),\(.*\),\(.*\))/foo($3,$1,$2)/'
Sed détecte bien le patern mais je me retrouve bel et bien avec foo($3,$1,$2) et non pas foo($toto,$bar,$plop)
Comment faire pour que sed remplisse la valeur de chaque $ ??
Merci d'avance
Uld
PS: je ne cherche à faire ca qu'avec sed, il se peut que d'autre solution plus simple plus esthétiques existent, (…)
Forum Programmation.shell Conserver un terminal actif après l'exécution d'une commande
Bonjour,
je ne suis pas sûr que cette question ait sa place ici, mais c'est ce que j'ai trouvé de mieux. Je cherche le moyen d'ouvrir un terminal (idéalement gnome-terminal), qu'il lance une commande (genre "ls"), et qu'il reste actif ensuite (c'est à dire que la fenêtre terminal ne disparaisse pas et que je puisse encore taper des commandes à l'intérieur).
J'ai testé pas mal de possibilités, mais impossible que le shell du terminal reste actif pour y taper de (…)
je ne suis pas sûr que cette question ait sa place ici, mais c'est ce que j'ai trouvé de mieux. Je cherche le moyen d'ouvrir un terminal (idéalement gnome-terminal), qu'il lance une commande (genre "ls"), et qu'il reste actif ensuite (c'est à dire que la fenêtre terminal ne disparaisse pas et que je puisse encore taper des commandes à l'intérieur).
J'ai testé pas mal de possibilités, mais impossible que le shell du terminal reste actif pour y taper de (…)
Forum Programmation.shell occurence de caractere
Bonjour,
Je cherche en vain le moyen de compter le nombre d'occurence d'un caractère dans des "strings". Je m'explique :
J'ai un fichier texte comme ceci (cela correspond à des réponses utilisateurs) (j'ai essayé en sql aussi mais ca fait le même problème) :
ligne1 : aaadc
ligne2 : eedab
ligne3 : dddac
ligne4 : aeada
ligne5 : eaaaa
etc...
Moi je voudrais rechercher et faire un traitement sur par exemple les lignes qui contiennent "3 a au moins" donc, (…)
Je cherche en vain le moyen de compter le nombre d'occurence d'un caractère dans des "strings". Je m'explique :
J'ai un fichier texte comme ceci (cela correspond à des réponses utilisateurs) (j'ai essayé en sql aussi mais ca fait le même problème) :
ligne1 : aaadc
ligne2 : eedab
ligne3 : dddac
ligne4 : aeada
ligne5 : eaaaa
etc...
Moi je voudrais rechercher et faire un traitement sur par exemple les lignes qui contiennent "3 a au moins" donc, (…)
Forum Programmation.shell setfacl retirer les droits d'acces d'un repertoire
Bonjour,
Je viens de lire beaucoup de tutoriel pour ajouter des permissions de lecture, écriture et éxecution sur un fichier avec setfacl.
Mais je n'en trouve aucun pour les retirer.
J'aimerai retirer tous les accès à user1 sur le répertoire /opt/csw avec la commande setfacl.
Merci de votre aide
Je viens de lire beaucoup de tutoriel pour ajouter des permissions de lecture, écriture et éxecution sur un fichier avec setfacl.
Mais je n'en trouve aucun pour les retirer.
J'aimerai retirer tous les accès à user1 sur le répertoire /opt/csw avec la commande setfacl.
Merci de votre aide
Forum Programmation.shell niveau de recherche dans répertoire - reference croisé
Bjr,
je viens de faire une belle commande shell du type
grep nouvelle1 **/**/**/**/* > log
elle me permet de chercher et lister les fichiers qui ont comme chaine de caractères nouvelle1.
la seule chose qui me gêne est le niveau de recherche dans les répertoires.
suis je obligé de faire des **/**/**/**/* et donc de connaitre le niveau de mon arborescence au préalable.
existe t il un moyen d'optimiser la chose ?
je viens de faire une belle commande shell du type
grep nouvelle1 **/**/**/**/* > log
elle me permet de chercher et lister les fichiers qui ont comme chaine de caractères nouvelle1.
la seule chose qui me gêne est le niveau de recherche dans les répertoires.
suis je obligé de faire des **/**/**/**/* et donc de connaitre le niveau de mon arborescence au préalable.
existe t il un moyen d'optimiser la chose ?
Forum Programmation.shell Problème avec un script de sauvegarde
Bonjour,
Voici le script qui me pose problème :
#! /bin/sh
echo "Veuillez patientez, Sauvegarde en cours a $d ........"
d=`date`
mysqldump -u root -p Adh45Jkl -c --add-drop-table -A >/home/sauv.sql
mt -f /dev/st0 rewind
(/bin/tar cf /dev/st0 /home &&
echo "sauvegarde le $d" | mail pierre.xxxxx@xxxx.fr -s "save OK sur SERVEUR") || echo "ca marche pas le $d" | mail pierre.xxxxx@xxxx.fr -s
"Echec sur SERVEUR" >& /dev/null
Ce script, installé sur une Debian Potato, lance une sauvegarde toutes les nuits (…)
Voici le script qui me pose problème :
#! /bin/sh
echo "Veuillez patientez, Sauvegarde en cours a $d ........"
d=`date`
mysqldump -u root -p Adh45Jkl -c --add-drop-table -A >/home/sauv.sql
mt -f /dev/st0 rewind
(/bin/tar cf /dev/st0 /home &&
echo "sauvegarde le $d" | mail pierre.xxxxx@xxxx.fr -s "save OK sur SERVEUR") || echo "ca marche pas le $d" | mail pierre.xxxxx@xxxx.fr -s
"Echec sur SERVEUR" >& /dev/null
Ce script, installé sur une Debian Potato, lance une sauvegarde toutes les nuits (…)
Forum Programmation.shell Lien entre un script Sh et un fichier OO de type BD ou Tableur
Salut tout le monde,
J'ai réussi avec l'aide des membres de Dalinux à faire mon premier script en sh.
find ~/Bureau/Linux/varexp.dat -print >> fichier.log -exec sed -i 's/A,PCVUE/W,PCVUE/g ; s/B,PCVUE/X,PCVUE/g ; s/C,PCVUE/Y,PCVUE/g ; s/D,PCVUE/Z,PCVUE/g' {} \;
Je voudrai maintenant faire en sorte que mes valeurs "A,PCVUE" et "W,PCVUE" correspondent à un champs de ma base de données ou de mon tableur.
Est ce possible ?
Merci d'avance.
J'ai réussi avec l'aide des membres de Dalinux à faire mon premier script en sh.
find ~/Bureau/Linux/varexp.dat -print >> fichier.log -exec sed -i 's/A,PCVUE/W,PCVUE/g ; s/B,PCVUE/X,PCVUE/g ; s/C,PCVUE/Y,PCVUE/g ; s/D,PCVUE/Z,PCVUE/g' {} \;
Je voudrai maintenant faire en sorte que mes valeurs "A,PCVUE" et "W,PCVUE" correspondent à un champs de ma base de données ou de mon tableur.
Est ce possible ?
Merci d'avance.
Forum Programmation.shell Tunnel SSH en tache de fond
Bonjour,
J'essaye de faire un un tunnel ssh indépendant de ma session de terminal.
J'ai pensé à la commande nohup, mais cela ne fonctionne. Cette commande ne me permet pas d'entrer le mot de passe. La seule réponse que j'ai trouvé sur internet c'est faire un script. est ce la bonne ou on peut faire autrement.
Merci de votre aide
J'essaye de faire un un tunnel ssh indépendant de ma session de terminal.
nohup ssh -L4562:localhost:4562 user@server
J'ai pensé à la commande nohup, mais cela ne fonctionne. Cette commande ne me permet pas d'entrer le mot de passe. La seule réponse que j'ai trouvé sur internet c'est faire un script. est ce la bonne ou on peut faire autrement.
Merci de votre aide
Forum Programmation.shell CSH : nombre de jobs
Bonjour,
J'ai un script en CSH qui lance plusieurs jobs et je souhaiterais mettre en variable le nombre de jobs en cours... Mais je n'y arrive pas !
J'ai essayé différentes façons mais rien n'y fait, il me retourne toujours 0 :
Exemple bateau de script pour qui veut essayer :
J'ai un script en CSH qui lance plusieurs jobs et je souhaiterais mettre en variable le nombre de jobs en cours... Mais je n'y arrive pas !
J'ai essayé différentes façons mais rien n'y fait, il me retourne toujours 0 :
set NBJOBS=`jobs -l | wc -l`
set NBJOBS=`jobs -l |& wc -l`
Exemple bateau de script pour qui veut essayer :
#!/bin/csh
(sleep 300 & sleep 300 & ) >&/dev/null
set NBJOBS=`jobs |& wc -l`
echo "$NBJOBS"
killall (…)
Forum Programmation.shell attendre la fin d'un processus créé depuis un autre shell
Donc la commande 'wait' ne fait pas l'affaire, la salope, puisqu'elle ne permet de considérer que les processus enfants!
j'ouvre deux terminaux A & B:
Depuis A :
Depuis B :
caramba!!!
je ne voudrais pas être obligé à scruter en permanence l'état du processus dont j'attends qu'il se termine.
Merci pour vos réponses.
j'ouvre deux terminaux A & B:
Depuis A :
> sleep 60 &
[1] 11808
> wait 11808 # génial, j'attends
Depuis B :
> wait 11808
bash: wait: pid 11808 is not a child of this shell
caramba!!!
je ne voudrais pas être obligé à scruter en permanence l'état du processus dont j'attends qu'il se termine.
Merci pour vos réponses.
Forum Programmation.shell tuer les processus d'utilisateurs déconnectés
Bonjour :)
sur mon serveur de client légers, les processus des utilisateurs ne s'arrêtent pas forcément si ils se déconnectent.
Du coup, je traine des centaines de processus qui encombrent le serveur.
Y aurait-il une petite ligne en bash qui pourrait être lancé par cron pour tuer tout ça ?
une combinaison de who, kill etc.
Mes trop maigres cométences en bash ne me permettent pas de le faire tout seul.
sur mon serveur de client légers, les processus des utilisateurs ne s'arrêtent pas forcément si ils se déconnectent.
Du coup, je traine des centaines de processus qui encombrent le serveur.
Y aurait-il une petite ligne en bash qui pourrait être lancé par cron pour tuer tout ça ?
une combinaison de who, kill etc.
Mes trop maigres cométences en bash ne me permettent pas de le faire tout seul.
Forum Programmation.shell Fichier de trace
J'ai un script et j'aimerai pouvoir faire un fichier de trace.
J'avais pensé à cela mais cela ne donne un fichier log mais vide.
#find ~/Bureau/Linux/ -exec sed -i 's/a_intouch/w_intouch/g' {} \; > fichier.log
#find ~/Bureau/Linux/ -exec sed -i 's/b_intouch/x_intouch/g' {} \; > fichier.log
Quequ'un peut me donner son avis.
J'avais pensé à cela mais cela ne donne un fichier log mais vide.
#find ~/Bureau/Linux/ -exec sed -i 's/a_intouch/w_intouch/g' {} \; > fichier.log
#find ~/Bureau/Linux/ -exec sed -i 's/b_intouch/x_intouch/g' {} \; > fichier.log
Quequ'un peut me donner son avis.
Forum Programmation.shell awk et sqlite3
Bonjour,
Comment incorporer des instructions sqlite3 dans un script awk ? Je commence à être un peu perdu après pas mal de recherche infructueuse.
hypotèse :
J'ai une table sqlite sous cette forme
cat|parcelle|surface
45|1|
34|2|
......
un fichier de donnée sous cette forme
1|34.45
2|45
etc....
Et sans suspense, je veux intégrer ces valeurs dans la tables
donc je fais un script awk, comme cela :
#!/usr/bin/awk -f
BEGIN{
base="psg.db";
FS="|";
}
{
print "parcelle " $1 " surface (…)
Comment incorporer des instructions sqlite3 dans un script awk ? Je commence à être un peu perdu après pas mal de recherche infructueuse.
hypotèse :
J'ai une table sqlite sous cette forme
cat|parcelle|surface
45|1|
34|2|
......
un fichier de donnée sous cette forme
1|34.45
2|45
etc....
Et sans suspense, je veux intégrer ces valeurs dans la tables
donc je fais un script awk, comme cela :
#!/usr/bin/awk -f
BEGIN{
base="psg.db";
FS="|";
}
{
print "parcelle " $1 " surface (…)
Forum Programmation.shell Convertir mon .sh en.exe pour zindows
Bonjour,
J'ai crée un petit script sous Linux en .sh.
Je cherche à pouvoir l'utiliser sous Windows.
Comment puis-je faire pour le rendre éxécutable ?
Merci d'avance pour vos réponses.
J'ai crée un petit script sous Linux en .sh.
Je cherche à pouvoir l'utiliser sous Windows.
Comment puis-je faire pour le rendre éxécutable ?
Merci d'avance pour vos réponses.
Forum Programmation.shell pb execution d'un script lire ligne a ligne plus whois des resultats
Bonjour à tous ... j'ai un pti soucis ... je sais le bash s'apprends ...suis là pour ca ...
Aprés plusieurs essaies je bloque ...
D'avance merci de votre aide :
But du script : un script qui lit le syslog et me renvoie des whois des IP sources, ligne par ligne. ex 99.99.99.99 = usa
voici les script :
#!/bin/sh
var1=$(sudo cat /var/log/syslog |grep 'UFW BLOCK INPUT]' |awk -F" " '{print $14}' |grep -v '192.168' |sort |uniq -c|sort -rn (…)
Aprés plusieurs essaies je bloque ...
D'avance merci de votre aide :
But du script : un script qui lit le syslog et me renvoie des whois des IP sources, ligne par ligne. ex 99.99.99.99 = usa
voici les script :
#!/bin/sh
var1=$(sudo cat /var/log/syslog |grep 'UFW BLOCK INPUT]' |awk -F" " '{print $14}' |grep -v '192.168' |sort |uniq -c|sort -rn (…)
Forum Programmation.shell question regex
Bonjour,
je soumets la question ici avant de soumettre éventuellement un rapport de bug, pour etre bien sur que j'ai pas manqué quelque chose.
Voici le probleme : j'ai des noms du type HELLOhello, constitués d'une premiere partie en majuscules, la seconde en minuscules (si elle existe). Je ne voudrais garder que la première. J'ai donc écris un petit one-liner sed, voila ce que ça donne :
$ echo HELLOa |sed -r "s/([A-Z]+)[a-z]*/\1/g"
renvoie bien HELLO, mais
$ echo HELLOb (…)
je soumets la question ici avant de soumettre éventuellement un rapport de bug, pour etre bien sur que j'ai pas manqué quelque chose.
Voici le probleme : j'ai des noms du type HELLOhello, constitués d'une premiere partie en majuscules, la seconde en minuscules (si elle existe). Je ne voudrais garder que la première. J'ai donc écris un petit one-liner sed, voila ce que ça donne :
$ echo HELLOa |sed -r "s/([A-Z]+)[a-z]*/\1/g"
renvoie bien HELLO, mais
$ echo HELLOb (…)
Forum Programmation.shell remplacer minuscule par majuscule
Bonjour , j'ai écris un petit script pour remplacer les caractere minuscule en majuscule des fichiers d'un repertoire :
Mais il me retourne toujours la meme erreur malgrès mes recherche sur google
quelqu'un pourrait-il m'expliquer ?
++ basename ./tr2.sh
+ myscriptname=tr2.sh
./tr2.sh: line 16: syntax error near unexpected token `fi'
./tr2.sh: line 16: ` fi'
Mais il me retourne toujours la meme erreur malgrès mes recherche sur google
quelqu'un pourrait-il m'expliquer ?
#/bin/bash -x
myscriptname=`basename $0`;
#exit;
for i in `ls -A`
do
if [ $i = $myscriptname ];
then
echo "Sorry , can't rename myself!"
elif (…)
Forum Programmation.shell Cherche astuce pour remettre la console en premier plan
Bonjour,
J'ai réalisé un script d'encodage vidéo sous bash.
J'aimerais le compléter par du code me permettant de remettre la console en premier plan dès que la console sollicite une réponse de ma part (typiquement dès que la commande "read" est lancée, la console revient automatiquement au premier plan).
Merci d'avance pour vos réponses.
J'ai réalisé un script d'encodage vidéo sous bash.
J'aimerais le compléter par du code me permettant de remettre la console en premier plan dès que la console sollicite une réponse de ma part (typiquement dès que la commande "read" est lancée, la console revient automatiquement au premier plan).
Merci d'avance pour vos réponses.
Forum Programmation.shell Noms de fichiers avec espaces, je craaaaque
Problème hyper classique et je ne m'en sort pas. Je crois que j'ai besoin de vacances :-(
J'ai une copie de fichiers à faire avec scp. Pour les tests je fais avec mv et des fichiers bidons, ça fonctionne. Mais avec scp rien à faire.
Deux contraintes:
1 (…)
J'ai une copie de fichiers à faire avec scp. Pour les tests je fais avec mv et des fichiers bidons, ça fonctionne. Mais avec scp rien à faire.
touch "a"
touch "b"
touch "c"
touch "d e"
touch " f g"
touch "h i "
touch " j k "
# des espaces avant, après, dedans, un peu de tout
Deux contraintes:
1 (…)
Forum Programmation.shell killer n processus
Bonjour,
je souhaite killer n processus. Pour killer j'utilise cette commande:
ps -ef | grep 8010 | awk '{print "kill -9 "$2"\n"}' | sh
mais je ne veux pas killer tous les processus juste 10.
je n'ai pas trouvé le moyen dans le man de ps pour lister que qq processus.
Merci de votre aide.
je souhaite killer n processus. Pour killer j'utilise cette commande:
ps -ef | grep 8010 | awk '{print "kill -9 "$2"\n"}' | sh
mais je ne veux pas killer tous les processus juste 10.
je n'ai pas trouvé le moyen dans le man de ps pour lister que qq processus.
Merci de votre aide.
Forum Programmation.shell mon script ferme le terminal ?!
bonsoir,
j'ai fais un petit script qui me fait un backup, il est tout simple mais il a un probleme : il me ferme le terminal dans lequel il tourne et je ne comprends pas pourquoi.
voici le script :
alors oui je (…)
j'ai fais un petit script qui me fait un backup, il est tout simple mais il a un probleme : il me ferme le terminal dans lequel il tourne et je ne comprends pas pourquoi.
voici le script :
#!/bin/bash
if [ ! -d "$1" ] ; then
echo "$1 doit etre un dossier"
return
fi
LIST=/etc
echo "sauvegarde systeme de base : dossiers $LIST"
ARCH="$1/sav-base.tar.bz2"
CMD="sudo tar -cjf $ARCH $LIST --totals"
echo $CMD
exec $CMD
alors oui je (…)