きれいな環境でスクリプトを起動するには?

きれいな環境でスクリプトを起動するには?

以下を試しましたが、うまくいかないようです。

$ cat script.sh
#!/bin/env -i /bin/sh

/bin/env
$ script.sh
/bin/env: invalid option -- ' '
Try `/bin/env --help' for more information.

ベストアンサー1

-i /bin/shこれがうまくいかない理由は、単一のパラメータとして扱われるからですenv。通常、これは2つのパラメータになります。-iこれは/bin/shshebangの制限です。周りに方法はありません。


ただし、他の方法でこれを行うこともできます。

同様の操作を行わずにスクリプト自体でこれを実行するには、env -i script.shスクリプトを独自に再実行させることができます。

#!/bin/sh
[ -z "$CLEANED" ] && exec /bin/env -i CLEANED=1 /bin/sh "$0" "$@"

CLEANED環境変数が設定されていない場合、スクリプトは自動的に再実行されます。次に、再実行時にループに陥らないように変数を設定します。

おすすめ記事