我似乎无法理解为什么$crypt
在这里为空
#!/bin/bash
pass=$(pwgen -1 -n 8)
salt=$(pwgen -1 -n 5)
crypt=$(perl -le 'print crypt($pass, $salt)')
user=deluge_$(pwgen -s 5 1)
echo crypt: $crypt # no output
echo pass: $pass #work
echo salt : $salt #work
echo $(perl -le 'print crypt($pass, $salt)') # no output
perl -le 'print crypt(Ab3choot, Oa3ah)' # works
答案 0 :(得分:0)
在bash
中,当放入单引号内时,变量不会被展开,而是使用双引号:
crypt=$(perl -le "print crypt("$pass", "$salt")")
现在应该扩展bash
个变量,$pass
和$salt
。
同样几乎总是,引用变量以避免单词拆分和文件名扩展是个好主意。