#!/usr/bin/env satırı kodlara neden eklenir?

Arkadaşlar bunu ilk basşlarda yorum satırı olarak algılamıştım ama sanarım değil hala cozmüş değilim. Bir stackowerflow yazısında bahsedilmiş ama anlayamadım, yardımcı olursanız sevinirim bu satır kodlarda neden kullanılıyor? Teşekkürler :slight_smile:

Mesela program.py isimli bir programınız var diyelim. Normalde bu programı şöyle çalıştırırsınız:

$ python program.py

Ancak yukarıda bahsettiğiniz ifadeyi, ilk satıra yazarsanız şu şekilde de programınızı çalıştırabilirsiniz:

$ ./program.py

İşletim sistemi, ilk satırdaki ifadeye bakarak bu programın Python ile çalıştırılması gerektiğini anlar. Ancak dikkat edin; bu satır sadece UNIX türevi işletim sistemlerinde (GNU/Linux, Mac OS, vb.) çalışır.

Peki tercih edilen genel kullanım bu mudur? Yazılan küçük çaplı programlarda falan…

Kullanmanız gerekene kadar kullanmayabilirsiniz. Kullanmanız gerektiğinde bunu zaten bilirsiniz.

Şu şekilde bir kullanım yapılmış:

 #!/usr/bin/env python

bir farkı varmı?

Pythonun yolunu belirtiyor sanırım bu arkadaş.

Bu daha iyidir. Diğerinde Python’ın belirli bir yolda olduğu varsayımına göre hareket ediyoruz. Ancak durum öyle olmayabilir. Bunda ise env ikilisi Python’ın yerini bulup çalıştırır. Yani Python’ın sistemde var olmaması dışında bir sorun yaşanmaz.

1 Beğeni

Böyle bir şeye neden ihtiyaç duyabiliriz? (İşimizi kolaylaştırmak dışında …)

Mesela linuxa bir servis yazacksınız ve program.service dosyasını olışturacaksınız.
Baktığım ötneklerde hep scriptin çalıştırılabilir dosya haline getirip öyle yapılmıştır .çünkü executable hale getirdiğinizde kodlarınız her linuz türevi os da çalışır diye biliyorum

Yablış olabilir böyle olduğunu sanıyorum .

Başka bir nedeni yok. Doğrudan dosya adı ile betik çalıştırmak için kullanışlı bir özellik bu sadece. Bunu yazmazsanız başına betiği çalıştıran çalıştırılabiliri girmeniz gerek.

1 Beğeni

Tam tersi, Python’un yolunu belirtmiyor.

1 Beğeni

İsmail Hocamın söylediklerine ufak bir ekleme yapmak istiyorum. Programı ./program.py şeklinde çalıştırabilmek için ayrıca dosyaya erişim izni vermek gerekir.

$ chmod +x program.py
2 Beğeni