다음 명령은 sftp
한 줄을 사용하여 명령을 보냅니다.
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
sftp
한 줄을 사용하여 여러 줄을 보내는 방법 . 이를 달성하기 위해 캐리지 리턴이나 무언가를 삽입하는 방법이 있습니까? 예를 들면 다음과 같습니다.
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home\n cd /myhome\n get file"
아이디어는 sftp -b
명령을 나열하는 외부 파일을 로드하는 옵션을 사용하지 않는 것입니다.
답변1
사용 중인 here-string() 구문에서 <<<
쉘이 인 것으로 추측하므로 bash
백슬래시 이스케이프 문자와 함께 string()을 사용할 수도 있습니다 $''
.
sftp -o PasswordAuthentication=no user@host <<< $'lcd /home\n cd /myhome\n get file'
휴대용 대안은 여기에 문서화되어 있습니다.
sftp -o PasswordAuthentication=no user@host <<END
lcd /home
cd /myhome
get file
END
답변2
-b/--batchfile
적절한 오류 처리를 위해 이 옵션을 사용하십시오 .
printf '%s\n' 'lcd /home' 'cd /myhome' 'get file' | sftp -b - user@host
답변3
네, 사용해도 됩니다echo -e
echo -e "lcd /home\ncd /myhome\nget file" | sftp user@host
답변4
Mybru, 다음과 같이 명령을 파이프할 수 있습니다.
echo '
lcd /home
cd /myhome
get file
' | sftp -o PasswordAuthentication=no user@host