…gibi yazılar var. İnternetten araştırdığım kadarıyla bunlara “shebang” deniyormuş ve genellikle Linux kullanıcıları tarafından kullanılıyor sanırım. Bunların amacı nedir? Neden kullanılır? Windows için bunlara benzer bir uyarı koymak gerekiyor mu? Bu shebanglerden birini belirten kodlar Windows’da doğrudan çalışır mı yoksa çalışması için ekstra bir şey yapmak gerekli mi? Son olarak “#-- coding: utf-8 --” ifadesinde coding kısmı utf-8 dışında hangi değerleri alabilir?
Komut dosyasının nerede çalıştırılacağını belirliyorsunuz bir nevi. Windows’ta koymana gerek yok ama araçlar vardır bunlarla ilgili.
Nerede çalışacağını bilmesi lazım kodun. Bunun için uyarı niteliği görüyor. Farklı bir kabuktan çalıştırsanız bile kodu bunları yazarak belirlediğiniz kabukta çalışmasını sağlayabiliyorsunuz.
Kodları 8 bit okuduğumuz için utf-8 kullanırız. Farklı bölümlemeler kullanmak istersen ve bunlara göre kod yazıyorsan.
Daha önce hiç Linux kullanmadığım için bilmiyorum. Doğru mu anladım acaba mesela Linux üzerinde kodları çalıştırmak istersem çalışması için belirtilen alan içerisinde kodu açmam gerekiyor değil mi?
Yorumlayıcıyı belirliyorsun kısaca yani. Neyde çalıştırıcaksın kodun ne senin. Java’mı yazdın. Java yorumlayıcısının yolunu yazıyorsun. Python’mu yazdın onun yorumlayıcısının yolunu. Birden fazla yorumlayıcıda çalışabiliyor mu? Hepsini yazdın. Bu işe yarıyor.
Şimdi senin shell’in var diyelim. Bu shell python terminali olarak düşün kodunda python. Eğer bu terminalde kodu çalıştırırsan kod çalışır. Ama kodun java diyelim ama python terminalinden çalıştırıyorsun o zaman hata verir. Yorumlayıcısını belirliyorsun o zaman çalışıyor.
Kodun senin yemeğin gibi. Yemeğin türü ne? Çorba diyelim. Sen çorbayı çatalla içemezsin. Kaşık lazım. Programa diyorsun ki bak kardeşim kaşık burada.
Dosyanin “birlikte acilacagi” programi belirtiyor. #! ile baslayan bir dosyayi calistirdiginda satirin geri kalanindaki program cagriliyor ve komut ona parametre olarak veriliyor (./dosya.sh → /bin/bash ./dosya.sh gibi). Windows’ta bu dosya uzantisi ve bir takim registry entry’leriyle belirtiliyor.