Мне нужно выполнить несколько команд копирования в удаленном месте (используя ssh "cp blah blah2").Вместо того, чтобы иметь отдельное ssh-соединение для каждой команды, я хотел бы сделать что-то вроде:
dirs=(dir1 dir2 dir3)
for dir in ${dirs[*]} ; do echo $dir; done
ssh user@server "for dir in ${dirs[*]}; do echo $dir; cp some/file.txt /home/user/$dir/; done"
Но даже несмотря на то, что первый эхо-сигнал печатает все три папки, эхо-запросы, выполняемые на удаленном сервере, равныпоследнее значение dir ("dir3").Я не понимаю, что я делаю неправильно, или почему он печатает три эха (и делает три копии), когда он использует только одно и то же значение.Я думаю, это как-то связано с тем, когда переменные раскрываются (локально или удаленно) ...
Я пытался использовать dirs = "dir1 dir2 dir3", @ вместо *, цитаты, но у меня нетНе удалось найти комбинацию, которая работает.
У кого-нибудь есть опыт решения этой проблемы?:)
Ура, Свенд.