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
이렇게 하면 위쪽 및 아래쪽 배열 키를 사용하여 기록을 찾아볼 수 있고 오른쪽 및 왼쪽 화살표 키(아직 지원하지 않는 프로그램의 경우)를 사용하여 현재 명령을 편집할 수 있습니다.