Forum Programmation.shell erreur if , fi ?

Posté par  .
Étiquettes : aucune
0
2
août
2009
Bonjour
j'écris juste un script pour changer les noms de fichiers de minuscule en majuscule :



#!/bin/bash -x

myscriptname=`basename $0`;

for i in `ls -A`
do
if [ $i = $myscriptname ];
then
echo "Sorry, can't rename myself!"
elif [ $i != $myscriptname ];
newname=`echo $i | tr a-z A-Z`
mv $i $newname
fi

done








Bash me donne toujours l'erreur de sortie sur le fi , l'output du debug


++ basename ./tr1.sh
+ myscriptname=tr1.sh
./tr1.sh: line 15: syntax error near (…)

Forum Programmation.shell Trier avec sort

Posté par  .
Étiquettes : aucune
1
31
juil.
2009
Bonjour, Je m'arrache les cheveux depuis ce matin avec les man de sort. Quelqu'un saurait-il me dire comment je peux trier avec sort par ordre numérique croissant le résultat suivant :

/dev/md/dsk/d0
/dev/md/dsk/d100
/dev/md/dsk/d101
/dev/md/dsk/d3
/dev/md/dsk/d4
/dev/md/dsk/d40
/dev/md/dsk/d7
/dev/md/dsk/d80
/dev/md/dsk/d81

Forum Programmation.shell recherche mot dans fichiers ascii

Posté par  .
Étiquettes : aucune
0
15
juil.
2009
Bonjour

je souhaite rechercher le mot toto dans tous les fichiers ascii du répertoire courant et de ses sous répertoires (autant les fichiers cachés que les sous-répertoires cachés)
Je sais que la commande serait qqch comme : grep -r toto *
(et encore, je ne suis pas sûr que cela prenne en compte les objets cachés)

Néanmoins comme mes sous-répertoires contiennent des fichiers binaires très volumineux (jusque 20 GB), pour pas que la recherche prennent des jours, il faudrait pouvoir (…)

Forum Programmation.shell syslog.conf comment le modifier?

Posté par  (site web personnel) .
Étiquettes :
0
14
juil.
2009
Bonsoir, je découvre le daemon syslogd dans le cadre de l'apprentissage d'une licence LPI102, j'ai fait quelques tests sur mon ubuntu du bureau et je il y a quelques points que j'aimerai éclaircir:

le fichier de base ressemble à ça:

------------------
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
..........
------------------

et par exemple j'aimerais envoyer tout ce qui concerne "dhclient" dans tty6, j'ajoute donc la ligne:

dhclient.* /dev/tty6

et ça ne (…)

Forum Programmation.shell sed, c'est dien

Posté par  .
Étiquettes : aucune
2
9
juil.
2009
Bonjour :)

J'ai la joie de me frotter à sed. Chaque fois j'apprends une astuce. Ca fait beaucoup d'astuces je trouve :-)

J'ai ce genre de texte à traiter:
Unit UnitType Status %Cmpl Stripe Size(GB) Cache AVerify IgnECC
------------------------------------------------------------------------------
u0 RAID-1 OK - - 698.637 ON - -

Port Status Unit Size Blocks Serial
---------------------------------------------------------------
p0 OK u0 698.63 GB 1465149168 GTC200P8GXB012
p1 OK u0 698.63 GB 1465149168 GTC200P8GXB5G4

Je sors ça avec la commande:
tw_cli /$(tw_cli show | grep (…)

Forum Programmation.shell Sudo/Scp

Posté par  .
Étiquettes : aucune
0
7
juil.
2009
Bonjour,


Je n'arrive pas à lancer un scp d'un fichier entre 2 machines en utilisant pourtant le sudo, si vous avez des idées :

Voila ma ligne de code :

/usr/local/bin/sudo /usr/bin/scp -p host1:/var/tmp/file1 /tmp



Et la conf du sudo sur host1 :

Cmnd_Alias SCP_DEST = /usr/bin/scp -p host1\:/var/tmp/file1 /tmp

user host1 = NOPASSWD : SCP_DEST


Mon script est lancé depuis host2 avec le compte user. Mon fichier se trouve sur host1 avec les droits root:root.


Merci!

Forum Programmation.shell Bash: GNU find & ! -path

Posté par  (site web personnel) .
Étiquettes : aucune
0
2
juil.
2009
Bonjour,

j'ai un fichier texte dans lequel je liste tous les chemins qu'une commande find doit ignorer.

Pour l'utiliser, j'ai écrit le petit script bash suivant:


#!/bin/bash

MONFICHIER="fic.txt"

NO_PATH=""
while read item
do
   NO_PATH="${NO_PATH} ! -path \"$item\""
done 

Malheureusement, si "echo" me renvoit ce que je désire, ce n'est pas le cas de la commande find: mes "! path" sont ignorés :-(.

Est-ce qu'une bonne âme aurait une idée comment remédier au problème? Est-ce qu'à tout hasard il y aurait (…)

Forum Programmation.shell list les fichiers les plus gros avec path et format human readable ?

Posté par  .
Étiquettes : aucune
0
30
juin
2009
Bonjour

aujourd'hui je souhaitais afficher les 10 fichiers les plus volumineux de mon eeepc via ls avec leur path , la commande utiise est la suivante :



ls -RSsk $PWD/**/* | sort -nr | head



neanmoins je ne comprends pas pourquoi pour certain fichiers , bash ne me renvoye pas le repertoire

la sortie :


tux@gnu:~$ ls -RSsk $PWD/**/* | sort -nr | head

76672 /home/tux/test.01/99-11-30(Tue).mpg
42796 Alive 1997.mp3
19100 13 - Human after alltogetherone more time (reprise)the music sounds (…)

Forum Programmation.shell Récupérer le débit par application

Posté par  .
Étiquettes :
3
28
juin
2009
Bonjour à tous,

Je souhaite écrire un petit script (pour apprendre) qui affiche le débit par application en up et en down.

Par exemple :
firefox => 30Ko/s (sur un téléchargement bien sur :))
filezilla => 15Ko/s
etc.

Je sais récupérer le débit total grâce au fichier /proc/net/dev, je sais où trouver les applications connectées avec la commande "netstat -4epn" mais pas moyen de trouver comment relier les deux


Si vous avez une idée, je suis preneur.

Merci,
Billy

Forum Programmation.shell Retirer les ^[[00m avec vim

Posté par  .
Étiquettes : aucune
1
2
juin
2009
Voilà j'ai le problème suivant (Sous Suse)
ls ../path/toto_* > File_list
me donne bien la liste des fichiers que je veux mais
les lignes sont encadrée par des ^[[00m
par exemple
[code]
^[[00m../TestNoise/Noise_1350_1399.root^[[00m
[/code]

Quelle méthode me permet de retirer ces caractères bizarre efficacement (et pas a la main? )
De préférence avec vim
Mais je peux aussi me contenter d'autre outils si besoin est ;)


Merci pour votre aide

Forum Programmation.shell Redirections sans fifo

Posté par  .
Étiquettes : aucune
1
29
mai
2009
Bonjour forum,

je bloque depuis des heures sur une redirection avec un shell. J'utilise Bash.

Je lance un programme en tâche de fond, et je veux lui envoyer du texte et lire sa réponse en détournant ses entrées et sorties standards. Je sais faire avec des fifos mais je souhaite comprendre comment faire sans.

Pour l'exemple j'ai pris expect:
#!/bin/bash

expect 6 echo 'send_user toto' >&6
echo 'exit' >&6

L'exemple donné ne fonctionne pas car je ne trouve pas le (…)

Forum Programmation.shell [ksh] Aide expression regulière

Posté par  .
Étiquettes : aucune
0
28
mai
2009
Bonjour,


J'ai besoin d'aide concernant une expression régulière. Je dispose de fichiers sous cette forme là :

ABCDEF[b]1508[/b]GV12AW090423200138.FILE

Il me faut matcher le nombre "1508" dans le fichier.

Donc j'utilise l'expression suivante :

[code]
ls /rep/ | grep -E [A-Z]{6}[${var}]{4}
[/code]

où var=1508

Mon seul souci c'est qu'il match aussi 1508 dans le désordre à cause des crochets, et si je les enlève il ne match plus rien :\

Si vous avez une idée....


Merci :)


PS : Je suis (…)

Forum Programmation.shell exit qui exit pas

Posté par  .
Étiquettes : aucune
0
26
mai
2009
Bonsoir @tous,

voilà mon problème :

$ cat plop.sh
#!/bin/sh

while true
do
echo plop
exit 1
done | cat -

echo fin
$ ./plop.sh
plop
fin


J'ai essayé avec un while => pareil et avec un tee comme commande pipé => pareil.

Si quelqu'un pouvait me trouver une explication à pourquoi le exit sort pas du script, ça m'interesse vraiment.

Merci d'avance aux bonnes ames,

Forum Programmation.shell Tuer automatiquement un process qui prend trop de mémoire

Posté par  .
Étiquettes : aucune
1
20
mai
2009
Cher Forum,

Le long week-end arrivant, je prévoit de faire mouliner gros truc tout le week-end
Programme, le script appelle un programme pleins de fuite de mémoire,
Comme je ne veux pas retrouver le programme à genou, je cherche un moyen pour tuer le process si il consomme plus de 50% de la mémoire totale.
Le tout de préférence sans tuer tout le script mais juste le programme (pour qu'a l'itération suivante ça fonctionne.)
Je n'ai pas d'accès root sur (…)

Forum Programmation.shell Dialecte inconnu

Posté par  .
Étiquettes : aucune
1
9
mai
2009
Je suis depuis quelques temps à la recherche de l'explication d'une étrangeté que je trouve dans certains scripts. Par exemple dans /etc/init.d/mdadm

Au lieu d'utiliser $1 ou ${1}, les script contient ${1:-}

La seule explication que je connaise est que ${1:x} permet d'extraire le contenu de ${1} à partir du x-ième caractère. Mais '-' n'est pas un nombre.

Une idée sur ce que fais cette chose ?

Forum Programmation.shell Comparaison de deux entiers sous bash

Posté par  .
Étiquettes : aucune
0
8
mai
2009
Bonjour,

Sous bash, a-t-on vraiment besoin d'écrire tout ça pour comparer deux réels ?


#!/bin/bash
if [ `echo $1 | grep "-"` ] && [ `echo $2 | grep -v "-"` ]; then
echo "$1 elif [ `echo $2 | grep "-"` ] && [ `echo $1 | grep -v "-"` ]; then
echo "$1 > $2"
else
NumberOne=`echo $1 | tr -d . | tr -d -`
NumberTwo=`echo $2 | tr -d . | tr -d -`
StringNumberDifference=$((${#NumberOne}-${#NumberTwo}))
if (…)

Forum Programmation.shell demander a mplayer de se mettre en pause lorsqu'il atteint 95 % de la lecture d'une video

Posté par  .
0
7
mai
2009
Bonjour ,

Je cherche un script bash qui permet de faire une pause à mplayer lorsqu'il a atteint 95 % de la lecture d'une video . J'utilise le mode slave décrit sur la doc ubuntu : http://doc.ubuntu-fr.org/tutoriel/comment_utiliser_mplayer_e(...) pour controler mplayer via bash .


j"essaye de récupérer le pourcentage dans mplayer.log mais celui s'arrete a 7 % pour le fichier d'une heure et 1 % pour les fichiers de 20 minutes . Ce que me donne la commande : cat ~/.mplayer/mplayer.log





(…)

Forum Programmation.shell problème avec commande sed

Posté par  .
Étiquettes :
0
5
mai
2009
Bonjour! J'ai un texte fichier programme1.out qui ressemble à ca :
connect to oracle (&conxora); create table table1 as select ID_PERS from connection to oracle ( select distinct pers.ID_PERS FROM tab_grp grp , tab_pers pers where date_deb_grp &date_quote) and pers.id_pers = grp.id_pers and (pers.date_supp_si is null or pers.date_supp_si > &date_quote) order by id_pers ); disconnect from oracle; connect to oracle (&conxora); create table table2 as select ID_PERS, ID_PRODUIT, CODE_PRODUIT, TOP_1 TOP_2 from connection to oracle ( select ID_PERS, ID_PRODUIT, CODE_PRODUIT, (…)

Forum Programmation.shell Ajouter une tâche CRON avec un script

Posté par  .
Étiquettes : aucune
0
30
avr.
2009
Bonjour,


Étant donné que ce topic http://linuxfr.org/forums/10/23310.html est archivé je me permets d'en ouvrir un nouveau.

J'aimerais depuis un script shell (ksh) ajouter une ligne à mon crontab (de la même façon qu'avec crontab -e). La méthode qui consiste à transformer le crontab en fichier tmp puis à le renommer ne me convient pas, car le crontab est alors indispo le tps de la modif (même aussi minime qu'elle soit).

Par contre si quelqu'un est en mesure de me donner (…)

Forum Programmation.shell Mencoder + barre de progression

Posté par  .
Étiquettes : aucune
0
27
avr.
2009
Bonjour,

J'utilise un script "mencoder" qui me donne les pourcentages d'avancement de l'encodage. Je souhaite utiliser ces pourcentages d'avancement dans une barre de progression.

J'ai complété le script "mencoder" avec une fonction "ProgressBar" du type de celle qu'utilise wget.

Mon problème est que je n'arrive pas à exploiter les innombrables pourcentages qui sortent du script mencoder sous la forme :


1
1
1
2
2
2
3
3
3
etc... jusqu'à 100.

Il faudrait que je puisse passer tous ces (…)

Forum Programmation.shell faire un paste de deux commandes

Posté par  .
Étiquettes : aucune
0
25
avr.
2009
bonjour,
j'ai un fichier contenant des nombres séparés par des virgules de cette forme:

1,2,4
5,8,9

j'aimerais prendre la 1ere colonne, la traiter avec sed et la transposer en derniere colonne.

Pour le moment je selectionne la 1er colonne avec un cut | sed et je stoque le resultat dans un fichier. Je fait ensuite en cut sur le reste et le stoque dans un 2eme fichier.
puis je fait un paste entre les deux fichiers.
Ce que j'aimerais maintenant, (…)