bash:如何获取保持反斜杠完整的文件

时间:2014-07-18 13:36:49

标签: bash backslash

在bash脚本中,我想读取如下配置文件:

re=foo\.bar

这样,在获取该文件后,$ re的值为foo \ .bar。 当我只是源文件时,反斜杠就会丢失。我怎么能这样做,而不引用' foo.bar'在配置文件中(我想保持配置文件尽可能简单)?

3 个答案:

答案 0 :(得分:1)

你需要引用反斜杠,或者单独使用另一个反斜杠

re=foo\\.bar

或作为引用字符串的一部分:

re='foo\.bar'

答案 1 :(得分:0)

逐行阅读:

IFS='='
while read -r var val
  do
    eval "$var=\"$val\""
  done < file.conf

答案 2 :(得分:0)

使用read循环-rprintf -v

while IFS=$' \t' read -r LINE; do
    [[ $LINE != \#* && $LINE =~ ^[[:alpha:]_][[:alnum:]_]*= ]] || continue
    IFS== read -r A B <<< "$LINE"
    printf -v "$A" "$B"
done
  • 我们首先阅读整行,以消除前导和尾随空格。
  • 评论检测也可能是一种选择,但它只对整行评论很容易。