Alias para script perl

1

Até agora, enquanto navegava na internet, descobri uma boa adição ao meu gerador de senha gpg e decidi ajustar meu alias com esses comandos. Aqui está o código

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"'

Aqui está o que eu tentei até agora:

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"'
}

mas ocorre erro ao gerar nova instância do bash:

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

Sou bastante novo no bash scripting, por isso não consigo descobrir como esse token deve ser escapado adequadamente.

    
por im_infamous 20.12.2014 / 17:22

1 resposta

6

Você tem a instrução alias quando não precisa dela, o que você está realmente criando é uma função, substitua a palavra alias pela função e ela funcionará como esperado.

Você também não precisa realmente de função, você pode ter apenas o seguinte e ele funcionará como esperado;

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"'
}
    
por 20.12.2014 / 17:36