Script shell

simovitch -  
 simovitch -
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 !
Configuration: Windows XP
Firefox 2.0.0.11

8 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Un début de réponse... ;-))
    0
  2. simovitch
     
    Apparament y a pas une reponce plus développé !
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Ben non tant que tu ne feras pas un effort de ton côté ;-))
      0
  3. simovitch
     
    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
  4. raspoute Messages postés 875 Statut Contributeur 74
     
    salut, en ce qui concerne les droits, tu peux aussi jetter un oeil sur umask :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. simovitch
     
    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
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
    1. raspoute Messages postés 875 Statut Contributeur 74
       
      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
  8. simovitch
     
    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
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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
  9. simovitch
     
    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