Я пытаюсь использовать подстановку в BS со встроенным пространством имен данных в (очень) маленьком встроенном занятом ящике (нет человека, всего 60 cmds), но я не могу отобразить данные, как только появятся другиеболее 2 данных:
все в порядке :
a=$(echo -e ${smtp_0} ${smtp_4})
echo $a
# returns: "0 4" as expected, also all individually printed datas are echoed as expected
это не соответствует ожидаемым данным независимо от того, какие данные:
b=$(echo -e ${smtp_0} ${smtp_4} ${smtp_5})
echo $b
# returns: "54" , same with double-quotes (Nok, it should return "0 4 5")
Данные построены следующим образом:
«образец файла данных»
val0=1
val1=1
...
Оболочка чтения данных:
#!/bin/sh
x=0
while read line
do
# fetch values, removing blank and commented lines, eg keeping only lines starting with data namespace
formatted_line=$(echo $line | sed -e "/^[^a-z].*$/d" | cut -d= -f2)
# store file's value into a data array-like
if [ ! -z $formatted_line ];then
eval "`echo $x | sed -e 's/.*/smtp_&=$formatted_line/'`"
x=$(($x+1))
fi
done < $DATA_FILE
# Then try echoing datas...
# ... see above ...
ИЗД.как будто там нет ошибки, но файл данных EOL вводит в заблуждение объединение встроенных данных.Я закрываю вопрос и благодарю Денниса за помощь в устранении этой головной боли.