2011-06-02 161 views
0

有沒有辦法改變的解釋在bash腳本更改解釋bash腳本

中間例如入手:

#!/bin/bash 

後來更改爲:

#!$drush_location 

的原因是因爲我想用bash來解析使用bash的drush的位置,然後通過該var作爲解釋器

+0

但是,如果你在shebang行中指定了一個* different *命令解釋器,那麼'bash'如何有機會解決任何問題?這不會改變「bash」腳本中間的解釋器 - 使用不同的解釋器,它不再是「bash」腳本。 – pavium 2011-06-02 09:53:09

回答

3

您將需要編寫兩個腳本並使用第一個(bash)腳本啓動第二個腳本(drush)。

還有其他方法可以實現這一點,但它們都是基本上花哨的方式來完成上述操作。例如,您可以使用here-doc將第一個腳本中包含的字符串填充到標準輸入框中,然後執行該操作,甚至可以編寫臨時文件並將其作爲腳本執行,但必須運行兩個以某種方式進行處理,您無法即時更改解釋器。

真的要做的事情將是修復你的環境,以便它可以發現眩暈。然後你可以使用:

#!/usr/bin/env drush 

作爲你的drush腳本的hashbang。如果你的系統沒有找到它,那麼修復你的搜索路徑,直到它可以!