我想使用下面的行来更改密码。当我放置实际值而不是变量时,该命令工作得很好。
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)"
我怎样才能成功?
最佳答案
不要在双引号中包含管道的其余部分。不需要子shell(括号)。
echo -e "$sshpass\n$sshpass" | passwd --stdin root
关于bash - 在Bash中使用带有变量的echo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18300515/