Comment puis-je corriger la coquille d'erreur “erreur de syntaxe près de jeton inattendu 'elif'”
J'ai cette course comme un Script Shell cible dans mon projet Xcode
# shell script goes here
genstrings -u -a -o en.lproj *[hmc] */*[hmc] */*/*[hmc]
if [ -f "$PROJECT_DIR/build/Release-macosx/UnicodeEscape" ] then
build/Release-macosx/UnicodeEscape "en.lproj/Localizable.strings"
elif [ -f "$PROJECT_DIR/build/Debug-macosx/UnicodeEscape" ] then
build/Debug-macosx/UnicodeEscape "en.lproj/Localizable.strings"
fi
exit 0
J'obtiens cette erreur:
/Utilisateurs/aa/Dropbox/Développeur/Pandamonia
LLC/iPhone/Acey Deucey/build/Acey
Deucey.build/Release/GenerateLocalizedStrings.build/Script-00F66869125625D9009F14DA.sh:
ligne 7: erreur de syntaxe près inattendu
jetonelif'
elif [ -f
/Users/aa/Dropbox/Developer/Pandamonia
LLC/iPhone/Acey Deucey/build/Acey
Deucey.build/Release/GenerateLocalizedStrings.build/Script-00F66869125625D9009F14DA.sh:
line 7:
"$PROJECT_DIR/build/Debug-macosx/UnicodeEscape" ] then' de la Commande /bin/sh a échoué avec l'
code de sortie 2
OriginalL'auteur Alexsander Akers | 2010-10-01
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, ne pas le tag
bash
etsh
, vous avez un shell, tapezecho $SHELL
savoir sur le shell que vous utilisez, ou mettre un beau spectacle au début de votre script (#!/usr/bin/env bash
)mettre des points-virgules après vos commandes, y compris
[
...]
qui est un alias pourtest
. Commande terminaisons sont de retour à la ligne,;
,&&
,||
et&
et sont obligatoires. Vous pouvez mettre plusieurs commandes entreif
etthen
, de sorte que ces points-virgules sont obligatoires.;
à la fin de déclarations inutiles null-états.sauf si vous n'avez pas changer de ligne.
Je ne comprends pas ce que vous essayez de dire. Pouvez-vous s'il vous plaît reformuler?
OriginalL'auteur Benoit
La
then
déclaration doit être sur une nouvelle ligne, ou séparé de la condition if avec;
.OriginalL'auteur Douglas Leeder
Vous avez besoin de point-virgule avant le mot-clé
then
.OriginalL'auteur Yuji
Pour moi le problème s'est avéré être incorrecte de fin de ligne qui devrait être
LF
et pasCRLF
.Ce qui s'est passé parce que je travaille à partir de Windows.
Vous pouvez le vérifier en Notepad++ par:
et corrigé par:
OriginalL'auteur Ujjwal Singh