Wednesday, November 21, 2012

sha-bang! running scripts on Unix machines

reference: http://en.wikipedia.org/wiki/Shebang_(Unix)

sha-bang 是 Unix 系統上面的特殊慣例,由一個 # (sharp) 和一個 ! (bang) 組成

在 script 中,這個慣例用來表示要用哪個 interpreter 來解釋 / 執行這個 script

一般用絕對路徑來表示,例如 #!/bin/sh 來呼叫外部的 Bourne shell




#!/path/to/the/interpreter [arguments]





常見例子:

#!/bin/sh
#!/bin/sh -x
#!/bin/bash
#!/bin/sed -f
#!/usr/bin/awk -f
#!/usr/bin/perl
#!/usr/bin/python
#!/usr/bin/ruby





當然也可以很空虛的...
#!/bin/cat




另外,有時候為了可攜性,會用 /usr/bin/env python 這種用法來找到該機器的 interpreter 在哪邊

然後不要傻呼呼的吃到 Permission denied. 才在哭說不知道要怎麼跑 lol

chmod +x your_script

No comments:

Post a Comment