This question already has answers here:
Closed 5 years ago.
How do I set a variable to the output of a command in Bash?
(14个答案)
我有这个密码:
我希望能够生成一个随机密码并将其存储为变量。然而,尽管randpass工作得很好,但当我尝试将“SSHKEYPASS”设置为randpass的结果时,它就不工作了。所以,如何使用randpass函数在SSHKEYPASS变量上生成随机密码。
谢谢您。
上面的命令将用randpass函数的标准输出填充SSHKEYPASS
(14个答案)
我有这个密码:
# 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变量上生成随机密码。
谢谢您。
最佳答案
问题是最后一行SSHKEYPASS=randpass 10
它分配randpass函数的返回状态,而不是randpass函数的输出,为了分配randpass function
的输出,您必须使用process substitution
如下
SSHKEYPASS=$(randpass 10)
上面的命令将用randpass函数的标准输出填充SSHKEYPASS
关于linux - Bash-将函数值设置为变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25911539/
10-09 13:27