2010-02-23 6 views
-7

Script fonctionne très bien dans Solaris et Linux tout simplement pas sur les paralytiques MAC - donc pas l'environnement de constructioncomment faire MAC reconnaître linux BASH?

#!/bin/bash 
var0=1 
LIMIT=60 
mkdir Application 
cd Application 
while [ "$var0" -lt "$LIMIT" ] 
do 
mkdir "$var0"; 
cd $var0; 
    for i in $(seq 1 8192); 
    do mkdir "${i}"; 
    cd "$i"; 
    dd if=/dev/urandom of=a bs=4096 count=1 > /dev/null 2>&1; 
     mkdir "${i}"; 
     cd "$i"; 
     dd if=/dev/urandom of=a bs=4096 count=1 > /dev/null 2>&1; 
      mkdir "${i}"; 
      cd "$i"; 
      dd if=/dev/urandom of=a bs=4096 count=1 > /dev/null 2>&1; 
           cd ..; 
          cd ..; 
        cd ..; 
         done 
       cd ..; 
     var0=$((var0 = 1)); 
     echo "$var0"; 
     date; 
+3

Il serait mieux si vous dire ce que erreur que vous obtenez. – vpram86

+1

Je ne vois pas comment cela fonctionnerait dans n'importe quel environnement. Le 'while' n'est pas terminé et vous n'incrémentez jamais' $ var0'. Et quel genre d'environnement de construction vous oblige à mâcher tout votre espace disque? –

Répondre

2

Donc, la réponse semble être:

  1. Évitez d'être inflammatoire dans les questions, et lire l'aide au formatage, surtout quand ça ne marche pas la première fois! ;-)

  2. Increment var0 correctement (par exemple, ((var0++)), ((var0 += 1)), var0=$((var0 + 1)), let "var0=$var0 + 1", etc. à la place de var0=$((var0 = 1));)

  3. terminer la boucle while.

en a fait une CW parce qu'il était vraiment un effort communautaire (Franchement, je ne l'ai pas pris la peine de lire le scénario au début, mais les commentaires de Ignacio m'a fait prendre un coup d'oeil).

+0

'var0 = $ ((var0 + 1))' ou '((var0 + = 1))' ou '((var0 ++))' fonctionnent tous de sorte que la version de l'OP puisse être une faute de frappe. –

+0

@Dennis: Merci, mis à jour la réponse. Je suppose que l'OP copiera et collera directement le script plutôt que de le réécrire! –

0

Je ne crois pas OS X a seq, de sorte que vous devrez utiliser jot, écrire une fonction seq, ou utiliser C style for boucles:

for ((i=1; i<=8192; i++)) 
Questions connexes