我想使用本地计算机上的脚本来执行位于远程计算机上的命令和脚本。我知道可以使用来执行这些命令ssh
,所以我做了:
#!/bin/bash
ssh username@target 'cd locationOf/theScript/; ./myScript.sh'
它完美地工作。我希望此脚本使用变量更通用。现在它是:
#!/bin/bash
LOCATION=locationOf/theScript/
EXEC=myScript.sh
ssh username@target 'cd ${LOCATION}; ./${EXEC}'
我得到这个错误: bash: ./: is a directory
我想远程机器不知道这些变量。那么有没有办法将它们导出到目标?
我不知道出口环境变量,以目标的一种简单的方法,但如果你更换你的脚本可能工作'
带"
。使用'
s时,字符串'cd ${LOCATION}; ./${EXEC}'
逐字传递,但是使用
ssh username@target "cd ${LOCATION}; ./${EXEC}"
变量替换在本地完成。
请注意,值LOCATION
和EXEC
传递到远程shell,所以如果它们不包含任何shell特殊字符这仅适用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句