语法错误附近的意外令牌`('

我是新手写脚本,在Ubuntu中。

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

我得到以下错误 – “语法错误附近的意外的令牌`('”。有人可以告诉我为什么我得到这个错误?

所以基本上你想要做的是

  1. 迭代通过命令svn info --revision HEAD输出的行
  2. 从第5行开始
  3. 将第二个项目/字段/列分配给变量%%G

在Bash中有很多种方法之一

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

这是做什么的

  1. 你可以将svn info --revision HEAD的输出“发送”给awk命令。
  2. 如果NR(到目前为止处理的记录/行数)大于4(即跳过前4行),则awk打印出第二列/字段/项目。
  3. 整个$(..)然后被awk的结果替换,就像是

     item2_line5 item3_line6 item2_line7 .... 
  4. 由于Bash的单词拆分,每行都被视为列表中的项目,并对列表中的每个项目for迭代。

你的命令是一个Windows命令:请看这里的Windows FOR文档。

如果你在Ubuntu工作,在终端输入man for ,你将得到文档。