【发布时间】:2013-04-21 03:41:22
【问题描述】:
好的,所以我有一个脚本需要通过 SSH 执行一堆命令,但是如果提供的目标是本地路径而不是主机名,我还想允许它在本地运行相同的命令。
现在我可以毫不费力地确定我是否在本地操作,但我有一组非常复杂的命令要运行,远远超过直接作为参数提供给 ssh 的范围。
我想做的是这样的:
if [ -n "$HOST" ]
then
ssh "$HOST"
fi
# Run some commands
# exit
但是有一些明显的问题,例如我如何传递适当的变量并退出,而不会导致脚本在本地定位时提前结束。所以我不确定这是否可能,有没有办法使用实际远程运行的普通 shell 命令来执行上述操作?
如果没有,另一种方法是让我将需要运行的命令提取到他们自己的 shell 脚本中,并确保我的 ssh 命令复制 shell 脚本(如果它不存在的话)然后运行它,但我也不知道该怎么做?我熟悉基本的 unix 命令,但不是这样的!
无论如何,如果可能的话,我将不胜感激任何关于最佳方式的建议,并提供详细示例。
【问题讨论】: