1. 程式人生 > >新版本caffe指令碼執行無許可權,#!/usr/bin/env sh

新版本caffe指令碼執行無許可權,#!/usr/bin/env sh

在linux的一些腳本里,需在開頭一行指定指令碼的解釋程式,如:
#!/usr/bin/env python

再如:
#!/usr/bin/env perl
#!/usr/bin/env zimbu

但有時候也用
#!/usr/bin/python

#!/usr/bin/perl

那麼 env到底有什麼用?何時用這個呢?
指令碼用env啟動的原因,是因為指令碼直譯器在linux中可能被安裝於不同的目錄,env可以在系統的PATH目錄中查詢。同時,env還規定一些系統環境變數。

執行一下 env 命令後看看列印的內容

可以用env來執行程式:

[mark@localhost ~]$ env python
Python 2.6.6 (r266:84292, Dec  7 2011, 20:38:36)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

而如果直接將直譯器路徑寫死在腳本里,可能在某些系統就會存在找不到直譯器的相容性問題。有時候我們執行一些指令碼時就碰到這種情況。