5

具体的には、2 つのサブディレクトリで 2 つの異なるファイル タイプを同時に監視しようとしています。

  「js」サブディレクトリの
  .coffee ファイルタイプ 「css」サブディレクトリの .styl ファイルタイプ

私はbashのことしか知らないので、このようなものを機能させようとしています

while inotifywait --format %w%f ./{css,js}/*.{styl,coffee}; do
  # regex pattern to match the file ending
  # and define it to $ending

  if[ $ending == coffee ]
  then
   coffee -c $file
  elif[ $ending == styl ]
  then
    stylus -c $file
  fi
done



// 編集 // この行を変更しました:

while inotifywait --format %w%f ./{css,js}/*.{styl,coffee}; do

そのため、両方のファイルをチェックしますが、css フォルダーに .coffee ファイルがない場合、または js に .styl ファイルがない場合、ファイルが見つからないというエラーが返されます。

さらに、このスクリプトを実行すると、次の 3 回が返される/実行されることに気付きました

Setting up watches.
Watches established.
./css/styles.styl
4

1 に答える 1

3

最もクリーンなソリューションではありませんが、機能します

#!/bin/sh

while file=$(inotifywait -r -e modify --format "%w%f" ./); do
  EXT=${file##*.}
  if [ $EXT = "styl" ]
  then
    stylus -c $file
  fi
  if [ $EXT = "coffee" ]
  then
    coffee -c $file
  fi
done

必要なファイルのみを監視するより良いソリューションがある場合は、すべて耳にします

于 2012-09-11T17:32:38.120 に答える