하나의 명령이 실행될 때마다 다른 명령이 먼저 실행될 수 있도록 bash에 콜백 / 후크를 할당 하시겠습니까? 때마다 gpg-connect-agent updatestartuptty /bye먼저 달리기를 원합니다 .

달리기 ssh(또는 scp또는 lftp) 할 때마다 gpg-connect-agent updatestartuptty /bye먼저 달리기를 원합니다 . (이건 긴 이야기다.)

현재 내 .bashrc에 함수가 정의되어 있습니다.

ssh()
{
  gpg-connect-agent updatestartuptty /bye >/dev/null 2>&1
  $(which ssh) "$@"
}

이것은 잘 작동하지만 ssh가 이미 다른 것과 비슷한 별칭을 가진 다른 시스템에서 사용되는 경우 이식성 문제가 발생할 수 있다고 생각합니다.

명령 자체 ssh를 재정의하지 않고 사전 실행 “콜백”을 정의 할 수있는 방법이 ssh있습니까? ( trap DEBUG모든 명령 전에 주어진 명령을 실행하는 데 사용할 수 있다는 것을 알고 있지만 필요한 명령으로 만 제한하고 싶습니다.)



답변

대신 다음과 같이 작성하는 것이 좋습니다.

ssh()
{
  gpg-connect-agent updatestartuptty /bye &>/dev/null
  command ssh "$@"
}

자세한 내용 help command은 참조하십시오.

그리고 다른 “사전 콜백 메커니즘”은 없습니다. 있다면, 당신이하고있는 것은 기본적으로 “그것”입니다.