bash 脚本中的内存缓冲区

bash 脚本中的内存缓冲区

function我最近完成了一个脚本,该脚本将询问主机名并自动将和的参数ssh带入我的工作服务器之一。

这是我的脚本的副本:

#!/bin/bash
echo "Provide hostname: "
read host

createSSHFunction()
{
    arg1=$1
    ssh $host
}
createSSHFunction $host

while((1)); do ~/sshScript.sh; done

但我注意到的是,我想要ssh进入其中一台服务器,但我断开了连接,本能地我会按向上箭头键重新显示我上次输入的相同参数。这是一个例子:

    Provide hostname:
    crf-alpha
    support@localhost's password:
    Last login: Thu Jul 24 12:16:33 2014 from localhost
    [support@crf-alpha ~]$
Connection to localhost closed.
Provide hostname:
^[[A

有没有一种方法可以在我当前的脚本中进行编码,它将缓冲我最后输入的任何内容?例如,我ssh进入 crf-alpha,然后就断开了连接。我的脚本将再次运行,提示我输入主机名,我希望这样,如果我按向上箭头键,我输入的最后一个输入将重新显示,所以在这种情况下是 crf-alpha 而不是我总是使用的奇怪符号得到。

答案1

如果您可以安装该rlwrap实用程序,那么就像执行以下操作一样简单

rlwrap ./yourscript.sh

这将允许您使用向上和向下数组键浏览历史记录,以及使用向右和向左箭头键编辑当前命令(对于尚不支持它的程序)。

相关内容