Bir komuta argüman olarak “-” ne anlama geliyor?


Yanıtlar:


18

Kullanımı yaygın bir gelenektir, -anlamında bir dosya adı argüman stdinya stdout; taraynı sözleşmeyi izler. Man sayfasından:

   -f, --file [HOSTNAME:]F
          use archive file or device F (default "-", meaning stdin/stdout)

1
Bu sadece bir sözleşmedir; -bunun için ne anlama geldiğini görmek için ilgili komutun man sayfasını okumanız gerekir. Stdin / stdout en yaygın anlamdır, ancak başkaları da vardır. Örneğin, bazı sürümleri enviçin "boş bir ortamla başla" anlamına gelir.
cjm

0

Başka bir kural, bayrakların sonunu ve dosya adlarının başlangıcını belirtmek için '-' kullanmaktır. Bu davranış, en azından RedHat 4'teki getopt (3) içine yerleştirilmiştir. Tartışma sonlarını belirtmek için '-' kullanan bir Red Hat man sayfası bulamıyorum, hepsi bunu yapmak için '-' kullanıyor gibi görünüyor. Awk man sayfasında bu bağlamda '-' vardır, bu yüzden belki sadece eski "yadigâr" Unix veya Solaris komutları argüman olarak - - dosya adları ayırıcısını kullanır.


3
--seçeneklerin sonunu gösterir, bu yüzden daha sonra gelen her şey bir işlenendir. -bir seçenek değil, bu yüzden ve daha sonra gelen her şey bir işlenen. Bu standart bir davranıştır . Gibi birçok komut için tar, işlenen -standart giriş veya çıkış araçları . Birçok mermide set - -aeşdeğerdir set -- -ave bazı eski Bourne mermileri set - -akabul edilen tek formdu, ancak bu setyerleşik bir istisna .
Gilles 'SO- kötü olmayı kes'

Solaris programları temel olarak --seçenekleri bağımsız değişkenlerden ayırmak için POSIX standart kuralına uyar.
alanc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.