2011-06-02 10 views
0

を変更するで始まるたとえばbashスクリプトインタプリタbashスクリプト

の途中で通訳を変更するためのどのような方法があります:

#!$drush_location 

:へ

#!/bin/bash 

後で変更理由は、bashを使用してdrushの位置を解決し、そのvarを通訳者として渡すためにbashを使用したいからです。

+0

しかし、シバン行に* different *コマンドインタープリタを指定すると、 'bash'は何かを解決する機会を得られますか?これは 'bash'スクリプトの途中でインタプリタを変更するものではありません。別のインタプリタでは、もはや' bash'スクリプトではありません。 – pavium

答えて

3

2つのスクリプトを作成し、最初の(bash)スクリプトを使用して2番目のスクリプト(drush)を起動する必要があります。

これを行うには他にも方法がありますが、基本的には上記の方法をすべて実行しています。たとえば、here-docを使って、最初のスクリプトの文字列として含まれているスクリプトをdrushのstdinに詰め込み、それを実行させたり、一時ファイルを書き込んでスクリプトとして実行したりすることができますどうにかして、あなたはその場でインタープリタを変更することはできません。

実際に行うべきことは、drushが見つかるように環境を修正することです。次に、あなたが使用することができます:

#!/usr/bin/env drush 

あなたのdrushスクリプトのためのhashbangとして。あなたのシステムevnがそれを見つけることができない場合は、可能な限り検索パスを修正してください!