#!/usr/bin/env python與#!/usr/bin/python的區別

面試的時候,面試官問我:爲何linux下寫python代碼的第一行經常是:#!/usr/bin/env python ?php

我沒有答得上來,回去查了查原來是這樣的:python

腳本語言的第一行,目的就是指出,你想要你的這個文件中的代碼用什麼可執行程序去運行它,就這麼簡單linux

#!/usr/bin/python是告訴操做系統執行這個腳本的時候,調用/usr/bin下的python解釋器;
#!/usr/bin/env python這種用法是爲了防止操做系統用戶沒有將python裝在默認的/usr/bin路徑裏。當系統看到這一行的時候,首先會到env設置裏查找python的安裝路徑,再調用對應路徑下的解釋器程序完成操做。
#!/usr/bin/python至關於寫死了python路徑;
#!/usr/bin/env python會去環境設置尋找python目錄,推薦這種寫法面試

計算機科學中,Shebang(也稱爲Hashbang)是一個由井號歎號構成的字符序列(#!),其出如今文本文件的第一行的前兩個字符。 在文件中存在Shebang的狀況下,類Unix操做系統程序載入器會分析Shebang後的內容,將這些內容做爲解釋器指令,並調用該指令,並將載有Shebang的文件路徑做爲該解釋器的參數[1]spa

相關文章
相關標籤/搜索