在bash中捕获多行输出作为数组不工作

在bash中捕获多行输出作为数组不工作,bash,Bash,我有这个剧本 #!/bin/bash MVAR=($(su - git -C "sftp user@xxx.xxx.xxx.xxx << EOF pwd EOF " )) echo ${MVAR[2]} #/bin/bash MVAR=($(su-git-C)sftpuser@xxx.xxx.xxx.xxx我认为它在空格上拆分是因为。请尝试将IFS定义为: $IFS=$”\n'MVAR=($(su-git-C)sftpuser@xxx.xxx.xxx.xxx $ IFS=$'\n'

我有这个剧本

#!/bin/bash
MVAR=($(su - git -C "sftp user@xxx.xxx.xxx.xxx << EOF
pwd
EOF
" ))
echo ${MVAR[2]}
#/bin/bash

MVAR=($(su-git-C)sftpuser@xxx.xxx.xxx.xxx我认为它在空格上拆分是因为。请尝试将
IFS
定义为:

$IFS=$”\n'MVAR=($(su-git-C)sftpuser@xxx.xxx.xxx.xxx
$ IFS=$'\n' MVAR=($(su - git -C "sftp user@xxx.xxx.xxx.xxx << EOF
pwd
EOF
" ))
$ IFS=$'\n' MVAR=($(sftp -b <(echo pwd) localhost))
$ echo ${abc[1]}
sftp> pwd
$ echo ${abc[2]}                                   
Remote working directory: /home/cbliard