我有这段代码:
# GENERATE RANDOM PASSWORD
# $1 = number of characters; defaults to 32
# $2 = include special characters; 1 = yes, 0 = no; defaults to 1
function randpass() {
[ "$2" == "0" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
cat /dev/urandom | tr -cd "$CHAR" | head -c ${1:-32}
echo
}
randpass
randpass 10
randpass 20 0
SSHKEYPASS = randpass 10
我希望能够生成随机密码并将其存储为变量。然而,虽然randpass工作得很好,但当我尝试将````SSHKEYPASS``设置为randpass的结果时,它不起作用。那么,我如何使用我的randpass函数在SSHKEYPASS变量上生成随机密码。
谢谢。
答案 0 :(得分:1)
问题是最后一行SSHKEYPASS=randpass 10
它的作用是它分配randpass函数的返回状态而不是randpass函数的输出,以便分配你有randpass function
的输出使用process substitution
如下
SSHKEYPASS=$(randpass 10)
上面的命令将使用randpass函数的标准输出
填充SSHKEYPASS