我在下面创建了bash脚本,以替换工作副本的SVN URL。
我可以确认在我的Linux系统上完美运行但在我的Mac OS系统上无效。我将能够提供我稍后回来的错误,但想知道是否有人可以指出我正确的方向。我相信它与WORKING_DIR变量中的空间有关,我已经尝试了在Google上发现的许多变体,包括逃避空间\添加“和”但仍然没有运气。
#!/bin/bash
filepath=$(pwd)
URL=https://192.168.22.225/svn
WORKING_DIR="/Users/user/Documents/Working Copies"
cd "${WORKING_DIR}"
for f in "${WORKING_DIR}"/*
do
if [[ -d $f ]]; then
(
cd "${f##*/}"
#printf "\n$PWD\n${URL}/${f##*/}\n"
svn relocate "${URL}"/"${f##*/}"
)
fi
done
cd "$filepath"
错误:
: No such file or directoryments/Working Copies
'bash: working.sh: line 7: syntax error near unexpected token `do
'bash: working.sh: line 7: `do
答案 0 :(得分:1)
这是赠品:
'bash: working.sh: line 7: syntax error near unexpected token `do
'bash: working.sh: line 7: `do
请参阅该行前面的'
?这应该打印在该行的 end 。
将光标发送回行首的是CR字符,也称为$'\r'
。因此,代替do
,您有do$'\r'
,当shell尝试打印unexpected token `do'
时,CR会将光标发送到该行的开头,因此结束{{1}在那里打印。
这是因为在DOS风格的系统中,换行符是两个字符,CRLF,而在UNIX上,它们只是CR。