2

我想使用下面的行来更改密码。当我输入实际值而不是变量时,该命令可以完美运行。

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)"

我怎样才能让它工作?

4

2 回答 2

5

不要在双引号中包含管道的其余部分。不需要子shell(括号)。

echo -e "$sshpass\n$sshpass" | passwd --stdin root
于 2013-08-18T15:21:38.110 回答
1

用这个:

echo -e "$sshpass\n$sshpass" | passwd --stdin root
于 2013-08-18T15:22:06.997 回答