如何使用本地参数运行远程bash脚本
问题描述:
我是shell脚本编程新手,遇到一些麻烦。如何使用本地参数运行远程bash脚本
我想从本地机器执行远程脚本。本地机器上的脚本传递四个参数,并执行以下行:
ssh $STACK 'bash -l -c "./deploy_intermediate.sh $2 $3 $4"'
但是,我不能得到$ 2,$ 3和$ 4扑灭传递的参数。有什么方法可以在单引号内访问它们吗?执行上述行的最佳方式是什么?
我真的很感激任何帮助。
谢谢。
答
要通过你不得不写的参数:
ssh $STACK 'bash -l -c "./deploy_intermediate.sh '$2 $3 $4'"'
因此,你做的$i
值进行扩展的方式。然而,我认为你可能通过简单的运行就可以得到相同的结果:
ssh $STACK "./deploy_intermediate.sh $2 $3 $4"
但是如果这些参数中有任何一个参数中有空格或者shell元字符,它会有令人惊讶的结果。 – rici 2014-12-13 03:42:00
@rici然后用双引号转义每个变量就足够了。例如:'ssh ...“./command \”$ 1 \“\”$ 2 \“...”'。 – Rubens 2014-12-13 21:16:21