在ssh之后通过一个数组循环到shell脚本

时间:2016-03-16 08:31:53

标签: shell ssh

在我的脚本部分,我需要为主机创建ssh并删除数组的元素。在我目前的数组元素的代码中,我需要使用ssh来托管,这需要时间。 我想一次让ssh到主机,然后删除数组的所有元素。 如何从性能的角度改进我的下面的代码?

for x in $Array
do
       echo "Value of array  are : $x"
       ssh user@abc.host.com "rm -rf $x"
done

2 个答案:

答案 0 :(得分:1)

为什么要循环?使用*作为下标给出了数组的所有元素。

ssh user@example.com "rm -rf ${Array[*]}"

请注意,如果文件名包含空格,则任何一种方式(带或不带循环)都会中断。

答案 1 :(得分:0)

您必须在本地文件中输入命令,然后上传文件,最后运行脚本。这是怎么回事:

echo > rmscript.sh
for x in $Array
do
    echo "Value of array  are : $x"
    echo  "rm -rf $x" >> rmscript.sh
done
#upload
scp rmscript.sh user@abc.host.com:~
#run script
ssh user@abc.host.com "sh ~/rmscript.sh"