2016-02-01 18 views
0

我有一個bash腳本,並且會有第一行以#開頭,後面跟着執行腳本的命令,而且由於exec調用有80個字符的限制似乎有這樣的限制,是否有改變呢?因爲有時候我的路很長。無論如何改變默認的exec調用長度?

更新。 我的情況是,我使用virtualenv來生成一個乾淨的Python環境。在這種環境下,有一個名爲pip的可執行文件,shebang行是python可執行文件路徑,有時這個路徑很長,例如,

#!/Users/myname/github/myproject/virtualenv_python3.4/bin/python3.4 
+1

在您的路徑將命令和使用'#! usr/bin/env yourcommand' – 123

+0

shebang記錄在'man execve'中。我在(fedora)手冊頁中看到了這一點:「在解釋器腳本中,第一行允許的最大行長度爲127個字符。」 –

+1

shebang行通常是'#!/ bin/bash',而不是腳本的路徑。你能對自己想做的事情做更精確的描述嗎?例如,帶有shebang行的文件在哪裏? – rici

回答

1

如果你不希望修改路徑,以包含在可執行文件,你可以創建一個簡單的包裝目錄:

#!/bin/bash 
/Users/myname/github/myproject/virtualenv_python3.4/bin/python3.4 <(cat <<"EOF" 
# Python script goes here 
EOF) "[email protected]" 
+0

找到類似的解決方法,https://github.com/pypa/pip/issues/1773 – zjffdu

+0

@zjffdu:奇怪的是,該問題還將'pip'描述爲shell腳本。這不是一個shell腳本。這是一個python腳本,python可執行文件由'execve'系統調用啓動;詳情請參閱man execve。 – rici