2017-03-20 5 views
1

heredocument를 사용하여 kerberos 주체 목록을 가져 오려고합니다.여기 문서의 출력을 텍스트 파일로 리디렉션하는 방법은 무엇입니까?

어떻게 heredocument의 출력을 텍스트 파일로 리디렉션 할 수 있습니까? 아래 텍스트 파일로 리디렉션하지 않고 스크립트가 작동합니다.

#!/bin/bash 

ssh [email protected] <<-EOF 
kadmin.local 
list_principals *host1* 
EOF 

output: 
HTTP/[email protected] 
hadoop/[email protected] 
host/[email protected] 

하지만 출력 파일을 텍스트 파일로 리디렉션하려고하면 오류가 발생합니다. 일 din't

것들 :

#!/bin/bash 
ssh [email protected] <<-EOF > test.txt 
kadmin.local 
list_principals *host1* 
EOF 

output: 
Pseudo-terminal will not be allocated because stdin is not a terminal. 

#!/bin/bash 
ssh [email protected] cat <<-EOF > test.txt 
kadmin.local 
list_principals *host1* 
EOF 

output: 
kadmin.local 
list_principals *host1* 
+0

는'사용 될 수 있습니다 -T''-T에 대한 ssh''에, 가상 터미널 할당 해제 .' – Inian

답변

2
#!/bin/bash 
ssh [email protected] > test.txt <<-EOF 
kadmin.local 
list_principals *host1* 
EOF 

테스트 :

$ sh > out.dat <<- EOF 
date 
EOF 

$ cat out.dat 
Mon Mar 20 09:49:18 EDT 2017