2013-01-15 7 views
1

Bonsoir tout le monde, nous sommes impatients d'exécuter un script shell sur une Ubuntu 8.04, mais il renvoie une erreur particulière:Syntaxe shell scripting? « Mot inattendu » getopts

line 14: Word unexpected (expecting "in") 

Voici donc un aperçu du script:

#!/bin/sh 
#Declaration of shell parameters 
A3REP="" 
A3FILE="" 
A3HELP="" 
A3PORT="80" 
A3PORTTC="80" 
A3IP400="" 
A3USER="" 
A3PWD="" 
A3TASK="" 
while getopts d:f:h:p:i:u:w:t:n: option 
do 
    case $option in 
    d) 
    A3REP="$OPTARG" 
    ;; 
    f) 
    A3FILE="$OPTARG" 
     ;; 
    p) 
    A3PORT="$OPTARG" 
     ;; 
    t) 
    A3PORTTC="$OPTARG" 
     ;; 
    i) 
    A3IP400="$OPTARG" 
     ;; 
    u) 
    A3USER="$OPTARG" 
     ;; 
    w) 
    A3PWD="$OPTARG" 
     ;; 
    n) 
    A3TASK="$OPTARG" 
     ;; 
    h) 
    A3HELP="aide" 
    ;; 
    esac 
done 

Problem solved: le script était en dos:

insérer la ligne suivante dans d2u.sh:

#!/bin/bash 
cat $1|tr -d '\015' 

et maintenant Execute:

chmod +x d2u.sh 

maintenant le script est prêt à fonctionner.

Essayez ce script en tapant la commande suivante:

sh d2u.sh filename.sh > filename2.sh 

et le script est pas plus dos.

Merci à tous! :)

+0

La syntaxe semble bien. Peut-être que vos fins de ligne sont fubar. Fournissez un vidage hexadécimal des lignes 13-15. –

Répondre

1

Peut-être un problème avec les fins de ligne, essayez

d2u FILE 

ref

+0

Merci beaucoup !!! Nous ne savions pas ce que D2U Meant, et après quelques recherches nous sommes venus pour essayer un scrit, si quelqu'un cherche, Voici les choses à faire dans le premier post: – user1980933