Boru hatları kullanarak kabuk komut dosyaları oluştururken ve satırları devam ettirmek için ters eğik çizgi kullanırken, yorum eklemek istiyorum çizgiyi kullanırken , sağlam, okunabilir ve taşınabilir bir şekilde ayrı satırlara .
Örneğin, bu önerilmeyen çok satırlı komut verildiğinde (netliği için @DigitalRoss'tan çalındı):
echo abc |
tr a-z A-Z |
sort |
uniq
... aşağıda estetik olarak başarmak istediğim şeye en yakın, ama bariz nedenlerle, çalışmıyor ... ve evet, bunun normal olarak yorumlamaya değer bir şey olmadığının farkındayım:
# Perform critical system task.
# NOTE - An example of what does *not* work.
echo abc |
# Convert lowercase to uppercase.
tr a-z A-Z |
# Sort the results.
sort |
# Only show unique lines.
uniq
Mevcut ilgili cevaplar aşağıdaki gibi benim için tatmin edici görünmüyor :
İlk, glenn jackman'ın cevabı (bir diziye argümanlar ekleyerek ve sonra diziyi yürütmek) tek komutlar için çalışır, ancak boru hattı için işe yaramaz (ve olsa bile, kaçınmak istediğim karmaşıklığı ekler).
İkincisi, @Gilles'ın buradaki cevabı (kullanan :
) boru hattıyla da çalışmıyor gibi görünüyor, çünkü boru hattının akışını değiştiriyor:
$ echo "abc" | :
$
( NOT : :
Çıkışı değiştirmeden geçiren bir eşdeğeri varsa , bu estetik olarak kabul edilebilir olurdu, ancak bir tane bulamadım. Özel bir tane yazabilirim, ancak taşınabilirliği azaltacaktır.)
Son olarak, DigitalRoss'un StackOverflow'daki cevabının son kısmı aynı hatta yorum eklemek için iyi çalışıyor, ancak ayrı satırlardaki yorumları kesinlikle tercih ediyorum. Aksi takdirde, çizgiler çok çeşitli uzunluklara sahip olduğunda, okunabilirlik azalır:
echo abc | # normal comment OK here`
/usr/local/bin/really/long/path/ridiculously-long-filename.sh | # another normal comment OK here
sort | # the pipelines are automatically continued
uniq # final comment
Okunabilirliği koruyan ve karmaşıklığı en aza indiren cevaplar arıyorum, ya da aradığım şeyin neden mümkün olmadığı konusunda biraz arka plan arıyorum.
i++; // increment i by one
. "Programlama Stilinin Öğeleri" ni