im_*_*ous 1 password alias perl gpg bashrc
到目前为止,在网上冲浪时,我发现了 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"'
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止尝试过的:
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"'
}
Run Code Online (Sandbox Code Playgroud)
但是在生成新的 bash 实例时发生错误:
bash: /home/user/.bashrc: line 18: syntax error near unexpected token `('
bash: /home/user/.bashrc: line 18: `alias genpass()'
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚应该如何正确转义此令牌。
当你不需要它时,你有别名语句,你实际创建的是一个函数,用函数替换别名这个词,它会按预期工作。
您实际上也不需要功能,您可以只拥有以下内容,它会按预期工作;
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"'
}
Run Code Online (Sandbox Code Playgroud)