bash
(спасибо @Charles Duffy) сохраняет каждый uniqueid
в array
, а затем передает их в %q
, чтобы получить уникальный путь. Кажется, это работает, с чем у меня проблемы - переименовывать каждый .png
с уникальным значением в %q
. Я думал, что это работает, но при ближайшем рассмотрении файл .png
отправляется на scp
.... но только 1 и с неправильным uniqueid. Похоже, что первый .png
используется scp
, но с последним uniqueid. В этом примере их 2, но может быть больше или меньше. Я добавил loop
, и это, похоже, не работает, я в растерянности. Спасибо :). Я надеюсь, что эта помощь и спасибо:).
├──/path/to/ ---- common path after ssh ---
│ ├── ID1* --- unique %q represents the unique id and * represents random text after it ---
│ │ └── /%q*/folder
│ ├── ID2* --- unique %q represents the unique id and * represents random text after it ---
│ │ └── /%q/folder
Описание:
После ssh
к общему пути на сервере, каждый уникальный идентификатор из %q
используется для дальнейшей навигации по папке. В каждой папке есть png (cn_results), к которому добавляется уникальный идентификатор из %q
(ID-cn_results), а этот файл присоединения scp
к xxx@xxx.xx.xx.xxx: / path / to/% д * / назначения.
Объявить -p массив = '([0] = "ID1" [1] = "ID2")' --- это где значение переименования --- ---
токовый выход в каждой папке / path / to /% q * / --- на сервере ---
cn_results.png
требуемый выход в каждом / path / to /% q * / destination после scp
uniqueid1-cn_results.png
uniqueid2-cn_results.png
Я могу вручную ssh
в каталог, и .png
есть, хотя до cn_results
это толькоscp
где его переименовывают / добавляют со значением массива, а затем scp
. Я попытался добавить цикл к scp
и переименовать так:
printf -v cmd_q '(cd /path/to/%q*/*/folder && for ID in "${array[@]}" ; do exec sshpass -f file.txt scp "$ID" xxx@xxx.xx.xx.xxx:path/to/destination/${ID}-cn_results.png)\n' "${array[@]}" ; done
sshpass -f out.txt ssh -o strictHostKeyChecking=no -t xxx@xxx.xx.xx.xx "$cmd_q"