J'ai d'abord appris à coder dans une C
langue et à utiliser
if ( code )
then
code
fi
rend très difficile pour moi de lire mon code (ne me demandez pas pourquoi). Y a-t-il un substitut then
?
Quelque chose comme ça:
if ( code ) {
code
}
fi
J'ai d'abord appris à coder dans une C
langue et à utiliser
if ( code )
then
code
fi
rend très difficile pour moi de lire mon code (ne me demandez pas pourquoi). Y a-t-il un substitut then
?
Quelque chose comme ça:
if ( code ) {
code
}
fi
Réponses:
Il n'y a pas de substitut, mais vous pouvez utiliser les deux si vous avez vraiment besoin des accolades:
if true ; then {
something
} fi
Cela utilise un groupe de commandes à contreventement explicite inutile comme corps du then
bloc. Toutes les commandes entre les accolades seront simplement exécutées dans le shell actuel lors de l' then
exécution, exactement comme si les accolades n'étaient pas là.
Je ne recommanderais pas vraiment ce style en général ou pour le code que quelqu'un d'autre devra lire, mais il vous donne les accolades que vous voulez, et il fera l'affaire si vous utilisez un éditeur qui nécessite des blocs contreventés ou quelque chose comme ca.
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
- en gros, lorsque vous en utilisez bash
suffisamment, la syntaxe standard devient assez familière, de sorte que ce n'est pas vraiment un problème.
Vous semblez être à la recherche de la coquille C ( csh
, tcsh
, etc ...). Sachez que les experts le déconseillent pour la programmation .
Je ne sais pas si la partie que vous considérez comme non attrayante est le fait qui then
est sur la ligne suivante? Si oui, envisagez d'utiliser le style suivant:
if condition; then
stuff
fi
Je dois admettre que l'orthographe des noms de déclaration à l'envers comme fi
pour if
et esac
pour case
(mais pas elihw
pour while
!) Est un peu bizarre. Mais c'est le shell Bourne standard, la syntaxe de shell la plus portable que vous pouvez utiliser.
then
désagréable, c'est juste que mon éditeur mettra en évidence les {}
paires correspondantes , et c'est utile lorsque j'ai une sorte d'erreur parce qu'alors je peux facilement voir toutes mes if
déclarations et voir si quelque chose s'est mal passé .
vi
de %
commande qui saute à l'accolade correspondante / parenthèses / support. Je sympathise. Je manque vi
la %
commande lors de la programmation en Python.
C'est peut-être plus facile pour les yeux:
[ condition ] && {
# statement 1
# statment 2
# ...
}
A part ça, il suffit de s'y habituer. Utilisez les idiomes de la langue.
Ce qui suit est proche de là. Et bizarre.
: if; { code; } && {
code
}
Personnellement, je n'ai jamais aimé le ...
if true; then
more;fi
... me former. J'aime quand les mots de contrôle mènent . Il m'a toujours semblé étrange que la ...;then
forme dominante soit née.
if this && that
then do these things too
else i will probably get upset
fi
C'est presque entièrement opposé à votre demande, mais c'est une autre façon de le faire. Vous pouvez également clouer toutes les redirections souhaitées sur la fi
ligne selon vos besoins et elles s'appliqueront à l'ensemble du bloc.
if(...) {
, c'est-à-dire laisser l'accolade ouvrante sur la même ligne que if
dans les langages de type C.
if
commande, même si sur la ligne suivante.
;
délimiteur dans ce cas. C'est pourquoi ils le font.
:
shell intégré comme ceci, juste pour qu'une ligne de code puisse être plus proche octet de la syntaxe C, ne devrait en aucun cas être encouragé.
J'utilise toujours:
if (code); then
code;
fi
Probablement pas exactement ce que vous voulez mais c'est un peu plus comme ça.