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. 将第二项/字段/列分配给变量%%G

在 Bash 中执行此操作的众多方法之一是

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

这是做什么的

  1. 您通过管道/“发送”svn info --revision HEADawk命令的输出。
  2. 如果 NR(到目前为止处理的记录/行数)大于 4(即跳过前 4 行),awk则打印出第二列/字段/项目。
  3. 然后整体$(..)被替换awk为类似的结果

    item2_line5
    item3_line6
    item2_line7
    ....  
    
  4. 由于 Bash 的分词,每一行都被视为列表中的一个项目,并for遍历列表中的每个项目。

于 2012-10-31T09:04:59.287 回答
1

您的命令是Windows命令:在此处FOR查看 Windows文档。

如果您在 Ubuntu 中工作,man for请在终端中输入,您将获得文档。

于 2012-10-31T07:30:41.487 回答