Jea*_*tin 9 ssh remote shell-script variable-substitution
我想用本地机器上的脚本执行位于远程机器上的命令和脚本。我知道可以使用 执行这些类型的命令ssh
,所以我做了:
#!/bin/bash
ssh username@target 'cd locationOf/theScript/; ./myScript.sh'
Run Code Online (Sandbox Code Playgroud)
它完美地工作。我希望这个脚本更通用,使用变量。现在它是:
#!/bin/bash
LOCATION=locationOf/theScript/
EXEC=myScript.sh
ssh username@target 'cd ${LOCATION}; ./${EXEC}'
Run Code Online (Sandbox Code Playgroud)
我得到这个错误: bash: ./: is a directory
我猜远程机器不知道这些变量。那么有没有办法将它们导出到目标?
小智 9
我不知道将环境变量导出到目标的简单方法,但如果您替换'
为"
. 使用'
s 字符串'cd ${LOCATION}; ./${EXEC}'
被逐字传递,但使用
ssh username@target "cd ${LOCATION}; ./${EXEC}"
Run Code Online (Sandbox Code Playgroud)
变量替换在本地完成。
请注意,值LOCATION
和EXEC
传递到远程shell,所以如果它们不包含任何shell特殊字符这仅适用。
归档时间: |
|
查看次数: |
22945 次 |
最近记录: |