9
votes

Si [$? -ne 0] Puis une erreur de syntaxe puis inattendue

J'ai essayé d'exécuter le script de shell UNIX suivant qui ne fonctionne pas. Je l'exécute par Kornshell (KSH).

ksh ../prescript/Pre_process $1 $2 $3
rc=$?;
if [[ $rc -ne 0 ]];then
    echo "failed";
       exit 1;


0 commentaires

3 Réponses :


0
votes

Vous manquez des points-virgules manquants à la fin des lignes:

if [ $? -ne 0]; then
   # …


2 commentaires

Ce n'est que si vous mettez puis sur la même ligne. La mettre sur une ligne séparée va bien.


Oui. J'ai gardé ; avant, comme indiqué ci-dessus, cela ne fonctionnait pas, alors je suis retourné à la nouvelle ligne alors



5
votes

Vous devez faire attention. La première opération sur $? Code> va généralement l'effacer afin que votre si code> ne fonctionne de toute façon pas.

Vous feriez mieux d'utiliser: P>

Return code was 1


1 commentaires

J'ai vérifié cela mais au moins pour obtenir la valeur zéro comme $? J'ai utilisé Echo sur le dessus. Toujours mon problème ne fonctionne alors pas. Y a-t-il une chose à faire pour le faire fonctionner sur ksh



8
votes

Ceci ressemble à une bash plutôt que ksh xxx


3 commentaires

Pouvez-vous s'il vous plaît laissez-moi savoir comment puis-je faire fonctionner sur Korn Shell.


Merci de travailler pour la partie, mais je suis confronté à un problème différent de l'appel de la fonction "échoué". pouvez-vous s'il vous plaît dites-moi la méthode d'appel de Korn Shell


Vous devez définir la fonction avant de l'appeler - Réponse modifiée