4

ubuntuでスクリプトを書くのは初めてです。

FOR /F "tokens=2 skip=4" %%G IN ('svn info --revision HEAD') DO...

次のエラーが表示されます -- 「予期しないトークン `(' に近い構文エラー」。このエラーが発生する理由を誰か教えてもらえますか?

4

2 に答える 2

3

つまり、基本的にあなたがやろうとしているのは

  1. コマンドによって出力された行を反復処理しますsvn info --revision HEAD
  2. 5行目から
  3. 2番目のアイテム/フィールド/列を変数に割り当てる%%G

Bashでそれを行う多くの方法の1つは

for variable in $(svn info --revision HEAD | awk 'NR>4 {print $2}'); do
  ... something fun ...
done

これは何ですか

  1. svn info --revision HEADtoawkコマンドの出力をパイプ/「送信」します。
  2. NR(これまでに処理されたレコード/行の数)が4より大きい場合(つまり、最初の4行をスキップする場合)、awk2番目の列/フィールド/項目を出力します。
  3. その後、全体が次のような$(..)結果に置き換えられますawk

    item2_line5
    item3_line6
    item2_line7
    ....  
    
  4. Bashの単語分割により、各行はリスト内のアイテムとして扱われ、リストfor内の各アイテムを繰り返し処理します。

于 2012-10-31T09:04:59.287 に答える
1

あなたのコマンドはWindowsコマンドです。こちらの WindowsFORドキュメントを参照してください。

Ubuntu で作業している場合はman for、ターミナルに入力するとドキュメントが表示されます。

于 2012-10-31T07:30:41.487 に答える