Yanıtlar:
Daha doğrusu, --bash yerleşik komutlarında ve komut seçeneklerinin sonunu belirtmek için birçok komutta bir çift tire ( ) kullanılır, bundan sonra sadece konumsal parametreler kabul edilir.
Örnek kullanım: dize için bir dosya grep etmek istediğinizi varsayalım -v- normal -volarak eşleme anlamını tersine çevirme seçeneği olarak kabul edilir (yalnızca eşleşmeyen satırları göster), ancak --sizinle bunun için grep yapabilirsiniz -v:
grep -- -v file
--içindeki düzgün anlatımlardan seçenekleri ayırmak için çalışır grep, ancak kurallı yolu kullanmaktır -e/ --regexp.
--yukarıdaki örneğimin de grep -e -v file(çok kafa karıştırıcı olmasına rağmen) yazılabileceğini belirtmekte haklısınız.
bashyerleşik komutlar --seçenek işaretleyicinin sonu olarak kabul edilmez. [ve echoörneğin yok ( sebeplerden biri echogüvenilir şekilde kullanılamaz ).
Gelen man bashbiz okuyabilir Shell Yerleşik Komutları bölümünde:
Aksi belirtilmediği sürece, bu bölümde belgelenen her yerleşik komut , seçeneklerin sonunu belirtmek için önceden kabul edilen seçenekleri
-kabul--etmiş sayılır .
:,true,falseVetestyerleşikleri seçenekleri kabul etmiyoruz ve tedavi etmiyoruz--özel.exit,logout,break,continue,let, Veshiftyerleşikleri kabul edip işlem argümanlar ile başlayan-gerektirmeden--. Argümanları kabul eden, ancak seçenek kabul etme olarak belirtilmeyen diğer yerleşikler,-geçersiz seçeneklerle başlayan argümanları yorumluyor ve--bu yorumlamayı engellemeyi gerektiriyor .Seçeneklerin sonu anlamına
echogelmediğini yorumlamadığını unutmayın--.
man bash(bir dahaki sefere kendi kendine not:).
POSIX.1-2017
12.2 Yardımcı Program Sözdizimi Kuralları
İlke 10:
--Bir seçenek argümanı olmayan ilk argüman, seçeneklerin sonunu gösteren bir sınırlayıcı olarak kabul edilmelidir. Aşağıdaki herhangi bir argüman '-' karakteriyle başlasalar bile, operand olarak değerlendirilmelidir .
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02
setkesinlikle yerleşik olması gereken Bash yerleşiklerinde.