bash
(谢谢@Charles Duffy)将每个uniqueid
存储在array
中,然后将它们传递到%q
以获取唯一路径。我遇到的麻烦似乎是用.png
中的唯一值重命名每个%q
。我以为它可以正常工作,但经过仔细检查,一个.png
文件正被发送到scp
....,但是只有1
且有错误的uniqueid
。似乎.png
正在使用第一个scp
,而最后一个uniqueid
正在使用。在此示例中,有2,但可能更多或更少。谢谢:)。
printf -v cmd_q '(cd /path/to/%q*/*/*/folder && exec sshpass -f file.txt scp -- *.png* xxx@xxx.xx.xx.xxx:'"$dir"'/folder/%q*-data.png)\n' "${array[@]}"
sshpass -f out.txt ssh -o strictHostKeyChecking=no -t xxx@xxx.xx.xx.xx "$cmd_q"
数组
uniqueid1 ---- this is stored in array ----
data.png ---- this is the file in the path ----
uniqueid2 ---- this is stored in array ----
data.png ---- this is the file in the path ---
当前
uniqueid1-data.png (but this is really the first png just with the wrong name)
由scp传输的所需文件
uniqueid1-data.png
uniqueid2-data.png
声明-p数组
declare -a array='([0]="ID1" [1]="ID2")'
getRNA_BAM.sh: line 45: declare: (cd /path/to/ID1*/*/folder && exec sshpass -f file.txt scp -- *.png* xxx@xxx.xx.xx.xxx:path/to/destination/ID1-cn_results.png)\n: not found
getRNA_BAM.sh: line 45: declare: ID1 not found
getRNA_BAM.sh: line 45: declare: (cd /path/to/ID2*/*/folder && exec sshpass -f file.txt scp -- *.png* xxx@xxx.xx.xx.xxx:path/to/destination/ID2-cn_results.png)\n: not found
getRNA_BAM.sh: line 45: declare: ID2 not found
声明-p cmd_q
declare -- cmd_q="(cd /path/to/ID1*/*/folder && exec sshpass -f file.txt scp -- *.png* xxx@xxx.xx.xx.xxx:path/to/destination/ID1-cn_results.png)
(cd /path/to/ID2*/*/folder && exec sshpass -f file.txt scp -- *.png* xxx@xxx.xx.xx.xxx:path/to/destination/ID2-cn_results.png)
我可以手动ssh
进入目录,并且.png
在其中,尽管它只是在cn_results
之前的scp
处,并在其中重命名/附加了{{1 }}值并复制。
array