4

次のような引数を使用してノードを実行するシェルスクリプトがあります。

#!/usr/bin/env node --harmony_proxies
...

これはOSXでは正常に機能しますが、Ubuntuでは次のエラーが発生します。

/usr/bin/env: node --harmony_proxies: No such file or directory

--harmony_proxiesフラグを削除すると正常に機能するため、ノードは確実にインストールされ、PATH上にあります。envUbuntuで使用するときに引数を渡す別の方法はありますか?

4

3 に答える 3

7

Linux では、インタープリター名に続く文字列全体が単一の引数としてインタープリターに渡され、この文字列には空白を含めることができます。[1]したがって、コマンド ライン引数は分割されず、envコマンドはファイルを実行しようとしてnode --harmony_proxiesいますが、明らかに見つかりませんでした。詳細については、こちらこちらを参照してください。

代替ソリューションは次のとおりです。

#!/bin/sh
exec node --harmony_proxies "$@"

それが役に立てば幸い。幸運を!

于 2011-11-13T01:43:51.780 に答える
0

ソースを変更したくない場合は、ラッパー エイリアスが適切なソリューションになる可能性があります。

私の .bashrc からの例:

alias how2='/usr/bin/env node --no-deprecation "$(which how2)"'
于 2016-12-13T23:21:44.007 に答える
0

コマンドが固定の場所にインストールされている場合は、node直接使用できます。

#!/usr/bin/node --harmony_proxies

ただし、特定の場所にインストールされていると想定できない場合nodeは、他の回答のいずれかを使用してください。

于 2011-11-13T01:46:47.500 に答える