2013-08-18 70 views
2

我想使用下面的行更改密碼。當我把實際值而不是變量,命令完美。在變量Bash中使用echo

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

你確定當你使用'回聲-e 「某某\ nxyz |(passwd的--stdin根)」 的第一個作品'?它不應該更改密碼。 –

回答

5

請勿在雙引號中包含管道的其餘部分。子shell(括號)是不需要的。

echo -e "$sshpass\n$sshpass" | passwd --stdin root 
+0

感謝 - 很好 – user2650277

1

使用此:

echo -e "$sshpass\n$sshpass" | passwd --stdin root