2013-08-18 2 views
2

아래 줄을 사용하여 암호를 변경하고 싶습니다. 변수 대신 실제 값을 넣으면 명령이 완벽하게 작동합니다.Bash에서 변수가있는 에코 사용하기

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 "XYZ \ nxyz | (passwd를 --stdin 옵션을 루트)"를 사용 할 때 첫 번째 작품 확실'? 암호를 변경하면 안됩니다. –

답변

5

나머지 파이프 라인을 큰 따옴표로 묶지 마십시오. 서브 쉘 (괄호)은 필요하지 않습니다.

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

감사합니다. 괜찮습니다. – user2650277

1

사용이 :

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