1

私のbash/nohupの経験は非常に限られているので、基本的な間違いを犯している可能性があります。

バックグラウンドファイルモニターを起動しています。(重要な場合、SassはCSSプリプロセッサであり、ソースファイルを監視し、変更を検出すると自動的にCSSにコンパイルできます。)

シェルプロンプトでこれを入力すると、Sassファイルモニターが完全に起動します。

nohup sass --watch /data/sass/:/data/css/ > /var/log/sass.out 2> /var/log/sass.err &

しかし、これを次のようなスクリプト(デバッグ用の簡略化されたサンプルスクリプト)に入れると、次のようになります。

COMMAND="[exactly the same command as above]"
echo `$COMMAND`

このエラーが発生します:

nohup: ignoring input and redirecting stderr to stdout
Errno::ENOENT: No such file or directory - > Use --trace for backtrace. >>> 
Sass is watching for changes. Press Ctrl-C to stop.

フルパス/usr/ bin / local/sassを指定しても同じことが起こります。私がどこで間違っているのか考えていますか?

4

1 に答える 1

2

次の方法で複雑なコマンド(リダイレクトなど)を実行することはできません。

echo `$COMMAND`

これを実際に実行できるのは、単純なバイナリまたはスクリプトを実行している場合のみです。実行$COMMANDする前に適切に拡張する必要があるため、以下を実行する必要があります。

echo `eval $COMMAND`
于 2012-10-26T19:27:46.400 に答える