2014-12-13 92 views
1

我是shell脚本编程新手,遇到一些麻烦。如何使用本地参数运行远程bash脚本

我想从本地机器执行远程脚本。本地机器上的脚本传递四个参数,并执行以下行:

ssh $STACK 'bash -l -c "./deploy_intermediate.sh $2 $3 $4"' 

但是,我不能得到$ 2,$ 3和$ 4扑灭传递的参数。有什么方法可以在单引号内访问它们吗?执行上述行的最佳方式是什么?

我真的很感激任何帮助。

谢谢。

回答

1

要通过你不得不写的参数:

ssh $STACK 'bash -l -c "./deploy_intermediate.sh '$2 $3 $4'"' 

因此,你做的$i值进行扩展的方式。然而,我认为你可能通过简单的运行就可以得到相同的结果:

ssh $STACK "./deploy_intermediate.sh $2 $3 $4" 
+0

但是如果这些参数中有任何一个参数中有空格或者shell元字符,它会有令人惊讶的结果。 – rici 2014-12-13 03:42:00

+0

@rici然后用双引号转义每个变量就足够了。例如:'ssh ...“./command \”$ 1 \“\”$ 2 \“...”'。 – Rubens 2014-12-13 21:16:21

相关问题