-1

Я пытаюсь сделать цикл for, но Cygwin не понимает синтаксис {$var} .

Моя команда:

for f in 'svn ls repo_path'; path/{$f}trunk/path; done

Error svn: E170000: URL path/%7Bvar%7Dtrunk/path doesn't exist

Строка должна выглядеть следующим образом: path/var/trunk/path

Как я могу заставить работать переменную + конкатенацию строк?

1 ответ1

2

Синтаксис ${f} , а не {$f} .

Если вам действительно нужен path/var/trunk/path , вы можете просто использовать path/$f/trunk/path . Это работает независимо от того, заканчивается ли $f косой чертой или нет. Баш не против двойного удара.

Также будьте внимательны при разборе вывода ls.

Собственно, сейчас у меня возникла такая проблема: для f в 'svn ls repo_path'; путь /$ {е} багажник /путь; сделанный

Получается как: путь /переменная /% 0Drrunk /путь

%0D является символом возврата каретки. Новая строка в Windows - \r\n , а не ожидаемая \n .

Попробуйте установить

IFS=$' \t\r\n'

перед циклом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .