OVH Cloud OVH Cloud

re- scripts pour debutant ...

16 réponses
Avatar
yannick.deglin
j'apprends doucement mais surement .....

voila .. j'ai 2 nouveaux hic ...

(solaris / ksh)


-Comment faire pour selectionner dans un repertoire un fichier qui
commence par toto et dont la date est la plus recente ....

disons que j'ai un repertoire
Data/

et dans ce repertoire des fichiers du type

toto_var1_var2_Date1.txt
toto_var1_var2_Date2.txt
toto_var1_var2_Date3.txt
tata_var1_var2_date4.txt

je veux chercher le fichier commencant par toto et le plus recent ...
en recuperant bien sur les variables toto, var1, var2 et date ...




- ensuite , est -il possible, sur unix, de lancer un script dès qu'un
nouveau fichier arrive dans un repertoire ????




merci beaucoup ;-)

6 réponses

1 2
Avatar
Etienne de Tocqueville
Stephane Chazelas a écrit sur fr.comp.os.unix :

postprocesser ls (dans l'absolu)

utiliser xargs sur un input qui n'a pas ete mis au bon format.

utiliser echo.

utiliser une boucle while read, utiliser read sans -r et sans
changer IFS.

variable non-quotee, pas de -- pour separer options des
arguments.


Franchement, là, ça tiens de la paranoïa !

Avatar
drkm
Etienne de Tocqueville <et+ writes:

Stephane Chazelas a écrit sur fr.comp.os.unix :

postprocesser ls (dans l'absolu)

utiliser xargs sur un input qui n'a pas ete mis au bon format.

utiliser echo.

utiliser une boucle while read, utiliser read sans -r et sans
changer IFS.

variable non-quotee, pas de -- pour separer options des
arguments.


Franchement, là, ça tiens de la paranoïa !


Un point en paticulier, ou l'ensemble ? Personnellement, ça me
semble plutôt rigoureux.

--drkm


Avatar
Stephane Chazelas
2004-12-20, 23:33(+01), Etienne de Tocqueville:
Stephane Chazelas a écrit sur fr.comp.os.unix :

postprocesser ls (dans l'absolu)

utiliser xargs sur un input qui n'a pas ete mis au bon format.

utiliser echo.

utiliser une boucle while read, utiliser read sans -r et sans
changer IFS.

variable non-quotee, pas de -- pour separer options des
arguments.


Franchement, là, ça tiens de la paranoïa !


Rien a voir avec de la paranoia, je parle de correctness.

read sans -r et sans changer IFS lit une liste de mots
(generalement, de l'utilisateur) en enlevant les blancs au debut
et a la fin, en donnant la possibilité d'echapper le separateur
par un backslash ou de continuer la phrase sur une nouvelle
ligne quant on depasse de l'ecran.

Il est normal que pour lire une ligne brute d'input, ce soit une
autre syntaxe (IFS= read -r line), ce n'est pas de la paranoia,
c'est connaitre la syntaxe (je le reconnais, ici absconce) du language
de programmation que l'on utilise.

Meme chose pour echo. Ses arguments (enfin, pour la plupart des
echo), c'est une chaine de characteres ou par exemple "n"
represente le character <NL>. Donc, si on veut afficher chaque
caractere litteralement, on ne doit pas l'utiliser.

ls "$var"

et "$var" peut etre aussi bien une option qu'un fichier.

Si on veut consider un shell comme un language de programmation,
il faut assumer et faire avec sa syntaxe a la con.

--
Stephane


Avatar
Pascal Bourguignon
Stephane Chazelas writes:
Si on veut consider un shell comme un language de programmation,
il faut assumer et faire avec sa syntaxe a la con.


Ou autrement dit, si on veut programmer un script, oublier le shell et
passer à Common Lisp ! (ou à la limite, scsh).

--
__Pascal Bourguignon__ http://www.informatimago.com/

There is no worse tyranny than to force a man to pay for what he does not
want merely because you think it would be good for him. -- Robert Heinlein

Avatar
drkm
Etienne de Tocqueville <et+ writes:

drkm writes:

Franchement, là, ça tiens de la paranoïa !


Un point en paticulier, ou l'ensemble ?


L'ensemble, les 5 points...

Personnellement, ça me semble plutôt rigoureux.


Oh oui, très rigoureux... et paranoïaque ! ;-)

Mais bon, après, ça dépends bien sur de si on programme un script qui
sera diffusé dans des distribution à des milliers d'utilisateurs, ou si
c'est juste un petit script pour soit qu'on compte utiliser une 10ène de
fois


Bof. Une dizaine d'exécutions d'un script peut déjà provoquer pas
mal de dégats. J'ai déjà eu assez de (mauvaises) surprises avec de
« petits scripts à usage unique » développés trop vite, et de manière
trop peu rigoureuse.

Je pense que l'investissement dépensé en essayant d'éviter les
pièges mêmes subtiles est rentable à moyen terme. Bien sûr, sur un
unique script, ça ne l'est pas des masses. Mais si tu comptes écrire
plus d'un script, autant prendre les bonnes habitudes. Une fois
acquises, elles ne prennent pas plus de temps à être mises en place
que les mauvaises (je parle du temps d'écriture du script, pas du
temps consacré à la réparation des dégats).

--drkm



Avatar
drkm
Pascal Bourguignon writes:

scsh


Je ne connaissais pas. Très intéressant ...

--drkm

1 2