我想使用本地计算机上的脚本来执行位于远程计算机上的命令和脚本。我知道可以使用来执行这些命令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
我想远程机器不知道这些变量。那么有没有办法将它们导出到目标?
1
另请参见在shell脚本中通过ssh查找exec中使用exec,如何在通过SSH连接后立即运行脚本?,如何为远程rsync进程设置环境变量?
—
吉尔斯(Gillles)“所以-不要再邪恶了”