Perl 스크립트의 별칭

Perl 스크립트의 별칭

지금까지 웹을 서핑하는 동안 gpg 비밀번호 생성기에 대한 훌륭한 추가 기능을 발견했으며 이 명령을 사용하여 별칭을 조정하기로 결정했습니다. 이것은 코드입니다

gpg --gen-random 1 20 | perl -ne'print "Your password: ";s/[\x00-\x20]/chr(ord($^N)+50)/ge;s/([\x7E-\xDB])/chr(ord($^N)-93)/ge;s/([\xDC-\xFF])/chr(ord($^N)-129)/ge;print $_, "\n"'

지금까지 시도한 내용은 다음과 같습니다.

alias genpass()
{
    gpg --gen-random 1 $1 | perl -ne'
    print "Your password: ";
    s/[\x00-\x20]/chr(ord($^N)+50)/ge;
    s/([\x7E-\xDB])/chr(ord($^N)-93)/ge;
    s/([\xDC-\xFF])/chr(ord($^N)-129)/ge;
    print $_, "\n"'
}

그러나 새로운 bash 인스턴스를 생성할 때 오류가 발생합니다:

bash: /home/user/.bashrc: line 18: syntax error near unexpected token `('
bash: /home/user/.bashrc: line 18: `alias genpass()'

이 토큰을 올바르게 이스케이프 처리하는 방법을 알 수 없습니다.

답변1

필요하지 않은 경우 별칭 문이 있습니다. 실제로 생성한 것은 함수입니다. 별칭이라는 단어를 함수로 바꾸면 예상대로 작동합니다.

실제로 해당 기능도 필요하지 않습니다. 다음 기능만 있으면 예상대로 작동합니다.

genpass()
{
    gpg --gen-random 1 $1 | perl -ne'
    print "Your password: ";
    s/[\x00-\x20]/chr(ord($^N)+50)/ge;
    s/([\x7E-\xDB])/chr(ord($^N)-93)/ge;
    s/([\xDC-\xFF])/chr(ord($^N)-129)/ge;
    print $_, "\n"'
}

관련 정보