Python üçlü tırnakla destekler
'something'
dört tırnak kullanarak, sh
gördüğü 2 olarak boş dizeler, ancak Python ilk üçü, üçlü tırnak içine alınmış bir dizgenin başlangıcı olarak görür ve dize değerinin bir parçası olarak dördünü içerir.
Çizginin geri kalanı, sh
tarafından bir komut olarak yorumlanır, ancak Python tarafından bir dizenin bir parçası olarak yorumlanır.
#
daha sonra sh
ile ilgili bir yorum oluşturur, ancak hala bir kapanış üçlü-alıntı ile kapatarak Python'a bir dize.
Yani
Özetlemek gerekirse:
sh
görür: boş dize (''
)-boş dize (''
)-komutu (exec python -u -- "$0" ${1+"[email protected]"}
)-comment (# '''
)
- Python şunları görür: üç tırnak işaretli dize değişmezi (
'exec python -u -- "$0" ${1+"[email protected]"} #
karakterlerini içerir)
Yani sh
komut adı ve komut satırı argümanları geri kalanı ile python -u --
kendini değiştirerek, bu komutu çalıştırır, ve Python bu dosyayı okur ve sadece bu yere gitmiyor değişmez bir ilk dizesi görür.
Dosyadaki ilk dizgi değişkeni olduğu için, __main__
modülünün belgeleyicisi olarak ayarlanacak, ancak bu ana komut dosyasıysa, önemli olmayacak.
Sadece bu başlatacak unutmayın * o ** korkunç güvensiz ** # 'kıyasla/usr/bin/env -i yüzden $ PATH'' herhangi * piton! python' * veya * (daha da iyisi) tam yolu bilmek ve kullanmak: '#!/usr/bin/python'. –