Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在属性值中使用带有shell脚本变量的svn setprop_Svn_Shell - Fatal编程技术网

在属性值中使用带有shell脚本变量的svn setprop

在属性值中使用带有shell脚本变量的svn setprop,svn,shell,Svn,Shell,我想在shell脚本中的svn setprop svn:externals命令中使用一个变量 路径被设置为变量,可以正常工作: LOCALPATH="/some/path" TARGETFOLDER="folder" svn propset svn:externals 'dir -r100 http://svn.example.com/repos/trunk' $LOCALPATH/$TARGETFOLDER/externals 但是,如果我尝试使用一个变量作为修订号,它将不起作用: LOCA

我想在shell脚本中的
svn setprop svn:externals
命令中使用一个变量

路径被设置为变量,可以正常工作:

LOCALPATH="/some/path"
TARGETFOLDER="folder"
svn propset svn:externals 'dir -r100 http://svn.example.com/repos/trunk' $LOCALPATH/$TARGETFOLDER/externals
但是,如果我尝试使用一个变量作为修订号,它将不起作用:

LOCALPATH="/some/path"
TARGETFOLDER="folder"
REV="100"
PROP="'dir -r$REV http://svn.example.com/repos/trunk'"
echo $PROP
svn propset svn:externals $PROP $LOCALPATH/$TARGETFOLDER/externals
PROP
变量正确回显,但
propset
不起作用。我总是遇到以下错误:

svn: Cannot specify revision for setting versioned property 'svn:externals'

任何帮助都将不胜感激。

这是在shell中转义单引号的问题。见解释。在处理您的案例时,发现以下组合有效:

....
PROP="dir -r$REV http://.../trunk"
svn propset svn:externals ''"$PROP"'' $LOCALPATH/$TARGETFOLDER/externals

这是在shell中转义单引号的问题。见解释。在处理您的案例时,发现以下组合有效:

....
PROP="dir -r$REV http://.../trunk"
svn propset svn:externals ''"$PROP"'' $LOCALPATH/$TARGETFOLDER/externals

我没有发现你的剧本有什么问题。不过,我也遇到了同样的问题

如果您被此脚本阻塞,您可以考虑使用外部文件< /强>设置属性:

LOCALPATH="/some/path"
TARGETFOLDER="folder"
REV="100"
PROP="'dir -r$REV http://svn.example.com/repos/trunk'"
echo $PROP > svn.externals
svn propset svn:externals -F svn.externals
# rm svn.externals

注意:调试shell脚本时,可以使用xtrace标志,而不是回显命令:

sh -x myscript.sh

它将输出每个执行的命令,并在前面加上
+

我没有发现脚本有任何错误。不过,我也遇到了同样的问题

如果您被此脚本阻塞,您可以考虑使用外部文件< /强>设置属性:

LOCALPATH="/some/path"
TARGETFOLDER="folder"
REV="100"
PROP="'dir -r$REV http://svn.example.com/repos/trunk'"
echo $PROP > svn.externals
svn propset svn:externals -F svn.externals
# rm svn.externals

注意:调试shell脚本时,可以使用xtrace标志,而不是回显命令:

sh -x myscript.sh

它将输出每个以
+

开头的已执行命令,尝试删除
PROP
值周围的单引号。我需要将属性用单引号括起来,才能使
propset
命令起作用。如果在最后一行使用
svn:external'$PROP'$LOCALPATH
,则
$PROP
将被视为字符串文字。请尝试删除
PROP
值周围的单引号。我需要将属性用单引号括起来,才能使
propset
命令起作用。如果在最后一行使用
svn:external'$PROP'$LOCALPATH
$PROP
将被视为字符串文字。谢谢。设置属性后是否可以删除
svn.externals
文件,或者它是否被subversion引用?是。有些人也喜欢将此文件签入svn,但我认为您不应该签入,因为propget会将值返回给您。谢谢。设置属性后是否可以删除
svn.externals
文件,或者它是否被subversion引用?是。有些人也喜欢将此文件签入svn,但我认为您不应该这样做,因为propget会将值返回给您。