Bir kabuk betiğindeki kod bloğunu yorumlamanın basit bir yolu var mı?
Bir kabuk betiğindeki kod bloğunu yorumlamanın basit bir yolu var mı?
Yanıtlar:
Bash'da:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
'Ve 'etrafında ENDsınırlayıcı, örneğin gibi blok içindeki aksi şeyler önemlidir $(command)ayrıştırılır ve çalıştırılacaktır.
EOFklasik bir örneğidir (ve bu yüzden olduğunu !kendi başına bir ünlem işareti,), ancak kullanabilirsiniz SNURFLE_BURGERSya classical_end_markeryorumladı aşımı malzemedeki kendi başına bir satırda görünmüyor başka bir kelime veya. Uzaylar vb. İle denemeler yapmayı öğrenirdim, ama kelime de onlarla iyi çalışabilir.
:birlikte, girdisini okumayan ve her zaman başarılı bir değerle çıkan bir komut ( ) çalıştırıyor ve "yorumu" girdi olarak gönderiyor. Çok fazla değil.
Kabuk betiği üzerinde blok yorumu yoktur.
Kullanılması vi(evet, vi) kolayca hat gelen yorum yapabilirsiniz n için m
<ESC>
:10,100s/^/#/
(satır 10'dan 100'e kadar satır başındaki (^) işareti # işareti ile okunur.)
ve yorum yapmak
<ESC>
:10,100s/^#//
(satır 10'dan 100'e kadar yedek satır başlangıcı (^) ve # ile noting // yazan.)
vineredeyse evrenseldir /bin/sh.
|noh, sonuna ekleyin . Boru ek komutları ayırır ve nohışıksızlık içindir. Arama terimi vurgulaması, bir dahaki sefere arama yaptığınızda otomatik olarak devam eder. Örnek::10,100s/^/#/g|noh
<SHIFT>+G 10 <ENTER>o zaman 0veya gezinmek için başka bir yolla). Ardından <CTRL>+V, görsel blok moduna girmek ve yorum yapmak istediğiniz tüm satırların başlangıcını vurgulamak için düğmelerini kullanın (bu örnekte 90 J). Sonra SHIFT+Ivurgulanan bloktan önce eklemek için tuşuna basın . Yorum işaretini girin (örn. #) Ve <ESC>önekinizi tamamlamak için tuşuna basın . Bu açıklama çok uzun geliyor, ancak benim deneyimime göre pratikte çok daha hızlı.
Kullanabilirsiniz:
if [ 1 -eq 0 ]; then
echo "The code that you want commented out goes here."
echo "This echo statement will not be called."
fi
if [ ];çalışıyor.
if false;. stackoverflow.com/a/18019516/2097284
Aşağıdaki için çalışmalı sh, bash, kshve zsh.
Yorum yapılacak kod blokları içeri konabilir BEGINCOMMENTve 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"
Yukarıdaki kodun çalıştırılması şunlarla sonuçlanır:
This is outside the commented block
İçin yorumsuz kod blokları böylece söz yorumladı
alias BEGINCOMMENT="if : ; then"
onun yerine
alias BEGINCOMMENT="if [ ]; then"
yukarıdaki örnekte.
tek tırnak işaretlerinden kaçabiliyorsanız:
__='
blah blah comment.
'
: 'Açmak ve 'kapatmak için kullanın .
Örneğin:
: '
This is a
very neat comment
in bash
'
Bu Vegas'ın burada bulunan örneğindendir
Vim'de:
shift-V (görsel moda girin), blokta yukarı doğru vurgu çizgileri:s/^/#/komut şöyle görünecektir:
:'<,'>s/^/#Enter tuşuna basın
Örneğin
shift-V
jjj
:s/^/#
<enter>
:s/^#/
Vi / Vim'in aşağıdaki gibi şeyler için tasarlanmış Görsel Blok modunu kullanabilirsiniz:
Ctrl-V
Highlight first element in rows you want commented
Shift-i
#
esc
Rahatsızlık şöyle olur:
Ctrl-V
Highlight #'s
d
l
Bu, satır sayılarını saymak veya okumak yerine bu tür bir şey yapmanın etkileşimli yoludur.
Son olarak, Gvim'de ctrl-v yerine Visual Block moduna girmek için ctrl-q kullanıyorsunuz (çünkü yapıştırmanın kısayolu budur).
Dürüst olmak gerekirse, neden bu kadar fazla mühendislik yapılıyor ...
Pasif kod oluşturmak için aktif kod yazmanın gerçekten kötü bir uygulama olduğunu düşünüyorum.
Benim çözümüm: çoğu editör blok seçme moduna sahiptir. Yorum yapmak istediğiniz tüm satırlara # eklemek için kullanın. Sorun ne...
Not defteri örneği:
Oluşturmak için: Alt - aşağı kaydırın, # tuşuna basın.
Silmek için: Alt tuşunu basılı tutup aşağı kaydırın, sağa kaydırın, silin.
Sunny256 tarafından kabul edilen cevapta buradaki doküman numarasındaki bir değişiklik, yorumlar için Perl anahtar kelimelerini kullanmaktır. Yorumlarınız aslında bir tür dokümantasyonsa, yorumlanmış blok içindeki Perl sözdizimini kullanmaya başlayabilirsiniz, bu da güzel biçimlendirilmiş olarak yazdırmanıza, bir man sayfasına dönüştürmenize vb.
Bildiğim kadarıyla kabuk söz konusu olduğunda, sadece değiştirmeniz gerekiyor 'END'ile '=cut'.
echo "before comment"
: <<'=cut'
=pod
=head1 NAME
podtest.sh - Example shell script with embedded POD documentation
etc.
=cut
echo "after comment"
(" Belgeleri kabuk betiğine gömme " konusunda bulundu )
Başka bir mod: Düzenleyicinizde BLOK yorum seçeneği yoksa,
YAPILAN
HERHANGİ BİR editör ile çalışır
Ben açık ve kapalı tek bir satır gibi:
if [ ]; then ##
...
...
fi; ##
'##' blok yorumunun başlangıcını ve sonunu kolayca bulmama yardımcı oluyor. Eğer bir demet varsa '##' dan sonra bir sayı yapıştırabilirim. Yorumu kapatmak için sadece '[]' içine '1' yapıştırıyorum. Ben de yorum bloğunda tek tırnak ile yaşadım bazı sorunları önlemek.