2017-09-14 10 views
0

IFS에서 콜론 구분 기호를 기반으로 문자열을 올바르게 분할하는 데 문제가 있습니다. 문자열 내부의 -e이 리터럴 문자열로 간주되는 대신 옵션으로 간주됩니다.Bash IFS가 문자열을 올바르게 분할하지 않습니다.

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

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

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

어떻게 고칠 수 있습니까?

답변

1

문자열이 올바르게 분할되고 있습니다. -e${items[0]}echo의 옵션으로 처리됩니다.

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