Script shell

Fermé
simovitch - 30 janv. 2008 à 21:56
 simovitch - 5 févr. 2008 à 19:13
Bonjour,

je veut ecrire un script shell sui permet de creer un nombre n de fichien , ce nombre etant donner en parametre et qui ont pour format ( file0.txt , file1.txt , ......)
ces fichiers sont créés avec une taille nulle(0 octet) et ont comme droits d'acces : rw- r-- rw- !

et merci !
A voir également:

8 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
30 janv. 2008 à 23:24
Salut,

Un début de réponse... ;-))
0
Apparament y a pas une reponce plus développé !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
4 févr. 2008 à 13:06
Ben non tant que tu ne feras pas un effort de ton côté ;-))
0
tkt j fait mon mieux mais j'arrive pas a faire donner le nombre de fichiers n en paramétre!
pour la craetion des fivhier on utlise la comende touch et pour les droits d'acces la commande chmod !

stp si tu peut juste me donner la fason de passer le nombre de fichier en parametre !
0
raspoute Messages postés 827 Date d'inscription lundi 1 mai 2006 Statut Contributeur Dernière intervention 13 septembre 2013 74
4 févr. 2008 à 20:51
salut, en ce qui concerne les droits, tu peux aussi jetter un oeil sur umask :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pour la déclaration de nombre de fichier n , ca peu fonctionne avec la boucle for....do comme ca :

for (test i=0 , test i<=$1 , test i=i+1)
do
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 févr. 2008 à 13:18
Re-

Pour des raisons qui m'échappent, l'emploi de la commande "touch" sous la forme "touch fichier{0..$1}.txt", sous quelques formes que ce soit, à l'intérieur d'un script (ou même en ligne de commande "set 3; touch fichier{0..$1}.txt") conduit immanquablement à la création d'un unique fichier nommé "fichier0..3.txt" !!!

L'expansion des accolades n'a pas lieu !?
Si quelqu'un a une explication à me donner je suis preneur et je l'en remercie d'avance ;-))


Donc de ce fait je t'ai induit en erreur ;-[

Bon pour m'excuser de t'avoir orienté vers une mauvaise solution, voici un bout de code permettant de créer le nom de fichier passé en paramètre au script :
#! /bin/bash

#set -xv

if [ -z "$1" ]
then
echo "Paramètre absent"
exit
else
for i in $(seq "$1")
do
touch "fichier${i}.txt"
done
fi
;-))
0
raspoute Messages postés 827 Date d'inscription lundi 1 mai 2006 Statut Contributeur Dernière intervention 13 septembre 2013 74
5 févr. 2008 à 18:21
Salut,

apparemment bash 'prends' les paramètres tel-quel sans chercher à les interpréter:

       Le  développement  des  accolades  est effectué avant tout autre développement et
       tous les caractères ayant une signification spéciale pour les  autres  développe-
       ments  sont  conservés  dans  le  résultat. Il s’agit d’une modification purement
       littérale. Bash n’effectue aucune interprétation syntaxique du  texte  entre  les
       accolades.


bizarre comme comportement.... :-)
0
Merci amidos , tout a fait c'est la méme remarque que j'ai aperçu sur le fonctionement de la commende touche !

pour le code ca march bien mais pour moi ce que je veut que création d'un nombre de fichier n , par exemple on suppose que le nom de script est calcul , on ve l'executer :
./ calcul 5

(5 etant le nombre de fichierqu'on ve le creer )

et ça donne 5 fichier du forme file0.txt , file1.txt...........file5.txt !

dsl pour le dérang!
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 févr. 2008 à 14:14
pour le code ca march bien mais pour moi ce que je veut que création d'un nombre de fichier n , par exemple on suppose que le nom de script est calcul , on ve l'executer :
./ calcul 5

Ben c'est exactement ce que fait le programme ci-dessus ;-))

Tien en prime, en rajoutant la ligne en gras, tes fichiers seront créés avec les droits voulus :
#! /bin/bash

if [ -z "$1" ]
then
echo "Paramètre absent"
exit
else
umask 020
for i in $(seq "$1")
do
touch "fichier${i}.txt"
done
fi
;-))
0
merci mon ami :)

ça marche bien !

dis moi ya pa une commance qui peut créér une repertoire avec ue taille nul
et une commende qui permet d calculer le nombre de fichiers ds une répéertoire !
0