0

在我之前的问题中,我创建了一个按模式恢复 svn 文件的命令:

svn st | grep SomeFolderA | awk {'print $2'} | xargs svn revert

现在我想让它成为一个接受参数(文件模式)的命令,并通过使用参数而不是SomeFolderA. 我尝试将此添加到我的.bash_profile文件中:

function revert() {
    "svn st | grep '$1' | awk '{print \$2}' | xargs svn revert" ;
}

当我运行时,revert SomeFolderA我得到这个输出:

-bash: svn st | grep 'SomeFolderA/' | awk '{print $2}' | xargs svn revert: No such file or directory

我也尝试使用完整的路径,svn但它仍然不起作用。我错过了什么?

4

2 回答 2

1

使用您的命令字符串创建一个变量并执行它

function revert() {
  cmd="svn st | grep '$1' | awk '{print \$2}' | xargs svn revert"
  eval $cmd
}
于 2013-10-15T13:51:51.007 回答
0

不需要使用函数,推迟函数,在你的脚本中使用下面的:

svn st | grep "$1" | awk '{print \$2}' | xargs svn revert
于 2013-10-15T08:24:46.083 回答