Why do backslashes disappear when run through echo?

こ雲淡風輕ζ 提交于 2019-11-29 07:20:52

The reason for this behaviour is that the read builtin uses \ as escape character. The -r flag disables this behaviour.

So, this should work:

while read -r line
  variable=$(echo $line | awk -F, '{print $2}')
  echo $variable
done < ./file.csv

You should also place "..." around things like $(...) and variables, like

variable="$(command)"
echo "$variable"

The man page for bash has this to say about read:

The backslash character (\) may be used to remove any special meaning for the next character read and for line continuation.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!