IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Différence de comportement entre SE (win/Unix)


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut Différence de comportement entre SE (win/Unix)
    Bonjour,

    j'ai un probléme perturbant.
    J'ai écrit un script shell qui fonctionne à merveille sur mon PC (win XP)

    J'essaie de faire marcher le script sur un serveur unix, il plante à tous les coups et me sort des messages d 'erreur :
    : command not foundipts/MyScript.sh: line 4:
    /home/Scripts/MyScript.sh: line 10: syntax error in conditional expression
    'home/Scripts/MyScript.sh: line 10: syntax error near `]]
    'home/Scripts/MyScript.sh: line 10: `if [[ $# -ne 2 ]]
    Voici les premières lignes de mon script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    #!/bin/ksh
    #****************************************************************************#
    #  Program Name  : obfuscation.ksh
     
    # this process avoids overlapping strings: the first string replaced is the biggest (dictionary speaking) so that if a string is included in another, the comparison happens once
    Ref_file=$1/Scripts/Neutralize.txt
    Log_file=$1/Logs/Obfuscation.log
     
    if [[ $# -ne 2 ]]
    	then
    		echo "Error Calling the obfuscation script" >> $Log_file
    		echo "The script needs exactly 2 arguments. Usage: ./MyScript.ksh MainFolderPath FolderToObfuscatePath." >> $Log_file
    		exit 255
    	fi
     
    if [[ -e TEMP ]]
    	then
    		rm -f TEMP
    	fi
     
    while read line
    do
    	count=`echo $line | cut -f1 -d "," | wc -m`
    	echo "$count	$line" >> TEMP
    done < $Ref_file
     
    sort -r TEMP > $Ref_file
    awk '{ printf( "%s" , substr( $0, 10, 100)); printf( "\n" ) } '

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    man ksh

    [[ -e .... ]] && ............ || ................;

    ou
    if [ ............. ] ; then ...................; fi

    ne melanges pas les syntaxes réelles de ksh et les faux ksh ....comme dans windows ou c'est un melange de ksh bash et shell windows

    en langages clair respectes le standard ksh même si t'es sous daub' ça t'eviteras des problèmes graves et plus encore..... l'impossibilité de porter tes scripts.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    que veux tu dire par faux ksh ??

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    Je ne connais que ce moyen pour écrire du shell..

    Le man ksh ne m'a pas trop aidé.. peut étre parce que je n'arrive pas à trouver les bonnes lignes..

    peux tu m'aigiuiller comment écrire une condition en shell 'réel' .. ?

    Merci

  5. #5
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par freestyler Voir le message
    que veux tu dire par faux ksh ??

    un shell est un shell

    dos/powershell lançant ksh ne lance en realité qu'un interpreteur de ligne de commandes ksh mais pas un shell ksh et en plus pas dans un environnement unix

    c'est donc bien un interpreteur ksh et non pas un shell ksh.

    voilà pourquoi je parle de "faux" ksh,bash ou autre

    quand aux syntaxes regarde ce que j'ai déjà écrit plus haut tu as la solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2008, 20h39
  2. différence de comportements entre JVM
    Par Nicaisse dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/08/2007, 11h41
  3. Réponses: 2
    Dernier message: 20/06/2007, 10h27
  4. Réponses: 5
    Dernier message: 10/04/2007, 09h37
  5. [JavaScript] Différence de comportement entre IE et FF
    Par YAMKI dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/02/2007, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo