Bash IFS неправильно разбивает строку

У меня возникли проблемы с тем, чтобы IFS правильно разделила строку на основе разделителя двоеточия. Кажется, что -e внутри строки рассматривается как вариант, а не как буквальная строка.

#!/bin/bash
string_val="-e:SQA"

IFS=: read -a items <<< "$string_val"

echo "${items[0]}" # Prints empty value
echo "${items[1]}" # Prints SQA

Как это можно исправить?


person Metallikanz    schedule 14.09.2017    source источник


Ответы (1)


Строка правильно разбивается; -e в ${items[0]} рассматривается как вариант echo.

$ string_val="-e:SQA"
$ IFS=: read -a items <<< "$string_val"
$ printf '%s\n' "${items[0]}"
-e
person chepner    schedule 14.09.2017