Block Comments dans un script Shell
10 réponses
Dans bash:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
les '
et '
autour du délimiteur END
sont importants, sinon les choses à l'intérieur du bloc comme par exemple $(command)
seront analysées et exécutées.
il n'y a aucun commentaire de bloc sur le script shell.
utilisant vi
(Oui, vi
) vous pouvez facilement commenter de la ligne n à m
<ESC>
:10,100s/^/#/
(c'est-à-dire, de la ligne 10 à la ligne 100, remplacer le début de la ligne (^) par le signe#.)
et de l'onu commentaire avec
<ESC>
:10,100s/^#//
(qui se lit comme suit: 100 remplacer le début de ligne ( ^ ) suivi de # avec //.)
vi
est presque universel partout où il y a /bin/sh
.
vous pouvez utiliser:
if [ 1 -eq 0 ]; then
echo "The code that you want commented out goes here."
echo "This echo statement will not be called."
fi
ce qui suit devrait fonctionner pour sh
, bash
, ksh
et zsh
.
les blocs de code à commenter peuvent être placés à l'intérieur de BEGINCOMMENT
et ENDCOMMENT
:
[ -z $BASH ] || shopt -s expand_aliases
alias BEGINCOMMENT="if [ ]; then"
alias ENDCOMMENT="fi"
BEGINCOMMENT
echo "This line appears in a commented block"
echo "And this one too!"
ENDCOMMENT
echo "This is outside the commented block"
L'exécution du code ci-dessus entraînerait:
This is outside the commented block
pour uncement les blocs de code ainsi commenté, dire
alias BEGINCOMMENT="if : ; then"
au lieu de
alias BEGINCOMMENT="if [ ]; then"
dans l'exemple ci-dessus.
si vous pouvez esquiver les guillemets simples:
__='
blah blah comment.
'
Dans Vim:
- aller à la première ligne du bloc que vous souhaitez faire des commentaires
-
shift-V
(entrer en mode visuel), en haut en bas des lignes de surlignage dans le bloc - exécuter ce qui suit sur la sélection
:s/^/#/
-
la commande ressemblera à ceci:
:'<,'>s/^/#
-
appuyez sur entrée
p.ex.
shift-V
jjj
:s/^/#
<enter>
vous pouvez utiliser le mode bloc visuel de Vi/Vim qui est conçu pour des choses comme ceci:
Ctrl-V
Highlight first element in rows you want commented
Shift-i
#
esc
Décommenter serait:
Ctrl-V
Highlight #'s
d
l
c'est la façon interactive de vi de faire ce genre de chose plutôt que de compter ou de lire des numéros de ligne.
enfin, dans Gvim vous utilisez ctrl-q pour passer en mode bloc visuel plutôt que ctrl-v (parce que c'est le raccourci pour coller).
tellement trop d'ingénierie...
je considère que c'est vraiment une mauvaise pratique d'écrire du code actif pour générer du code passif.
ma solution: la plupart des éditeurs ont le mode de sélection de bloc. Simplement l'utiliser pour ajouter # pour toutes les lignes que vous souhaitez commenter. Quelle est la grosse affaire...
exemple de bloc-notes:
pour créer: Alt - mousedrag down, appuyez sur #.
supprimer: Alt-mousedrag bas, shift-droit flèche, supprimer.
une variante de l'astuce here-doc dans la réponse acceptée par sunny256 est d'utiliser les mots-clés Perl pour les commentaires. Si vos commentaires sont en fait une sorte de documentation, vous pouvez alors commencer à utiliser la syntaxe Perl à l'intérieur du bloc commenté, ce qui vous permet de l'imprimer joliment formaté, le convertir en une page de manuel, etc.
en ce qui concerne le réservoir, il suffit de remplacer 'END'
par '=cut'
.
echo "before comment"
: <<'=cut'
=pod
=head1 NAME
podtest.sh - Example shell script with embedded POD documentation
etc.
=cut
echo "after comment"
(Trouvé sur " documentation D'intégration dans le script shell ")
un autre mode est: Si votre éditeur N'a pas L'option BLOCK comment,
- Ouvrir une deuxième instance de l'éditeur (par exemple, Fichier=>Nouveau Fichier...)
- à partir du fichier précédent sur lequel vous travaillez, sélectionnez seulement la partie que vous voulez commenter
- copiez et collez-le dans la fenêtre du nouveau fichier temporaire...
- ouvrir le menu Édition, Sélectionner remplacer et entrer comme chaîne de caractères à remplacer "\n'
- remplacer chaîne de caractères: '\n# '
- appuyez sur le bouton "Remplacer tout "
fait
il travaille avec N'importe quel éditeur