Set IFS
(Internal Field Separator). Shell uses the IFS
variable to determine what the field separators are. By default, IFS
is set to the space character. Change it to the newline character, as demonstrated below:
#!/bin/bash
names="Netgear
Hon Hai Precision Ind. Co.
Apple"
SAVEIFS=$IFS # Save current IFS (Internal Field Separator)
IFS=$'\n' # Change IFS to newline char
names=($names) # split the `names` string into an array by the same name
IFS=$SAVEIFS # Restore original IFS
for (( i=0; i<${#names[@]}; i++ ))
do
echo "$i: ${names[$i]}"
done
Output
0: Netgear
1: Hon Hai Precision Ind. Co.
2: Apple