我想使用下面的行来更改密码。当我放置实际值而不是变量时,该命令工作得很好。

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/

10-11 15:03