echo 命令在将输出存储在变量中时不保留 \n 字符 - bash shell 脚本
echo command not preserving \n character when storing output in a variable - bash shell script
当 echo 命令将数据存储在变量中时,我正在尝试检索换行符。有人可以帮我吗
当我 运行 echo -e 时,它给出了命令行的预期输出
bash>testfile='INFO\nERROR\nWARNING'
bash> echo -e "$testfile"`
INFO
ERROR
WARNING
但是,当我尝试将输出存储在变量中时,我缺少换行符。
bash>testoutput=`echo -e "$testfile" | grep 'WARNING\|ERROR'`
bash>echo $testoutput
ERROR WARNING
感谢建议
在 unix stackexchange 上查看 this answer。
看起来换行符在那里,echo
只是出于某种原因不想打印它们。请查看 printf
。
brundage@fatty ~ $ testfile='INFO\nERROR\nWARNING'
brundage@fatty ~ $ echo -e "$testfile"
INFO
ERROR
WARNING
brundage@fatty ~ $ testoutput=`echo -e "$testfile" | grep 'WARNING\|ERROR'`
brundage@fatty ~ $ printf "$testoutput\n"
ERROR
WARNING
当 echo 命令将数据存储在变量中时,我正在尝试检索换行符。有人可以帮我吗
当我 运行 echo -e 时,它给出了命令行的预期输出
bash>testfile='INFO\nERROR\nWARNING'
bash> echo -e "$testfile"`
INFO
ERROR
WARNING
但是,当我尝试将输出存储在变量中时,我缺少换行符。
bash>testoutput=`echo -e "$testfile" | grep 'WARNING\|ERROR'`
bash>echo $testoutput
ERROR WARNING
感谢建议
在 unix stackexchange 上查看 this answer。
看起来换行符在那里,echo
只是出于某种原因不想打印它们。请查看 printf
。
brundage@fatty ~ $ testfile='INFO\nERROR\nWARNING'
brundage@fatty ~ $ echo -e "$testfile"
INFO
ERROR
WARNING
brundage@fatty ~ $ testoutput=`echo -e "$testfile" | grep 'WARNING\|ERROR'`
brundage@fatty ~ $ printf "$testoutput\n"
ERROR
WARNING