function
最近、ホスト名を要求してssh
ジョブサーバーの1つのパラメータを自動的に取得するスクリプトが完了しました。
私のスクリプトのコピーは次のとおりです。
#!/bin/bash
echo "Provide hostname: "
read host
createSSHFunction()
{
arg1=$1
ssh $host
}
createSSHFunction $host
while((1)); do ~/sshScript.sh; done
ssh
しかし、私が気づいたのは、サーバーの1つに入りたかったので、接続が失われたため、本能的に上矢印キーを押して前回入力したのと同じパラメータを再表示したことです。例は次のとおりです。
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
これにより、上下の配列キーを使用して履歴を参照でき、右矢印キーと左矢印キー(まだサポートされていないプログラムの場合)を使用して現在のコマンドを編集できます。