我想使用下面的行来更改密码。当我输入实际值而不是变量时,命令可以正常工作。
echo -e "$sshpass\n$sshpass | (passwd --stdin root)"
$sshpass
是一个包含密码的变量。
我尝试了以下操作,使命令无效运行:
echo -e "/$sshpass\n/$sshpass | (passwd --stdin root)"
echo -e "$sshpass\n$sshpass | (passwd --stdin root)"
echo -e "'$sshpass'\n/'$sshpass' | (passwd --stdin root)"
我怎样才能让它发挥作用?
答案 0 :(得分:5)
不要在双引号中包含其余的管道。
。不需要子shell(括号)echo -e "$sshpass\n$sshpass" | passwd --stdin root
答案 1 :(得分:1)
使用此:
echo -e "$sshpass\n$sshpass" | passwd --stdin root