到目前为止,在网上冲浪时,我发现了 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"'
}