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()'
我無法弄清楚應該如何正確轉義這個令牌。
當您不需要它時,您有 alias 語句,您實際創建的是一個函式,將單詞 alias 替換為 function,它將按預期工作。
您實際上也不需要功能,您可以只擁有以下功能,它會按預期工作;
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"' }