将 FTP 输出重定向到单独的行



将FTP输出重定向到文件时,我在一行中获取所有输出。我的要求是,如果目录被更改或文件被列出,所有内容都应该在单独的行中而不是一行中。请指教。

FTPOUT=`ftp -inv << EOF
open $FTP_SERVER
user $USER_NAME $PASSWORD
cd $FILE_DIR
ascii
nlist ${fileName} $FILE_DIR_LIST
close
bye
EOF` > testfile.txt

电流输出示例:

 250 Directory successfully changed. 200 Switching to ASCII mode. 227 Entering Passive Mode (165,32,41,174,29,231). 150 Here comes the directory listing. 226 Directory send OK. 221 Goodbye.

预期输出:

250 Directory successfully changed. 
200 Switching to ASCII mode. 
227 Entering Passive Mode (165,32,41,174,29,231). 
150 Here comes the directory listing. 
226 Directory send OK. 
221 Goodbye.

常规:对命令使用 $() 而不是背道。 使用小写变量名称。
不要将输出分配给变量并尝试同时重定向(当 hou 想要时,请使用 tee )。
用换行符回显变量时,请使用双引号(始终使用双引号,除非您知道不使用双引号的充分理由)。
结果:

# You should change other variable names too
ftpout=$(ftp -inv << EOF
open ${FTP_SERVER}
user ${USER_NAME} ${PASSWORD}
cd ${FILE_DIR}
ascii
nlist ${fileName} ${FILE_DIR_LIST}
close
bye
EOF
)
echo "${ftpout}"

相关内容

最新更新