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
shell-script
智障 的 人
la source
la source
Réponses:
Il n'y a pas de substitut, mais vous pouvez utiliser les deux si vous avez vraiment besoin des accolades:
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.
la source
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
- en gros, lorsque vous en utilisezbash
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:Je dois admettre que l'orthographe des noms de déclaration à l'envers comme
fi
pourif
etesac
pourcase
(mais paselihw
pourwhile
!) Est un peu bizarre. Mais c'est le shell Bourne standard, la syntaxe de shell la plus portable que vous pouvez utiliser.la source
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 mesif
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 manquevi
la%
commande lors de la programmation en Python.C'est peut-être plus facile pour les yeux:
A part ça, il suffit de s'y habituer. Utilisez les idiomes de la langue.
la source
Ce qui suit est proche de là. Et bizarre.
Personnellement, je n'ai jamais aimé le ...
... 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.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.la source
if(...) {
, c'est-à-dire laisser l'accolade ouvrante sur la même ligne queif
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é.Voici un moyen:
est équivalent à:
la source
{...}
autourecho "found"
, et vous vous dirigerez dans la bonne direction.J'utilise toujours:
Probablement pas exactement ce que vous voulez mais c'est un peu plus comme ça.
la source