Поэтому у меня есть следующий код:Bash: почему эта переменная не отражается?
IFS=' ';
dateArr=(${date[i]});
monthStr=${dateArr[0]};
day=${dateArr[1]};
year=${dateArr[2]};
case "$monthStr" in
"Jan") month="01";;
"Feb") month="02";;
"Mar") month="03";;
"Apr") month="04";;
"May") month="05";;
"Jun") month="06";;
"Jul") month="07";;
"Aug") month="08";;
"Sep") month="09";;
"Oct") month="10";;
"Nov") month="11";;
"Dec") month="12";;
esac;
if [ ${#day} -eq 1 ]
then
day=0$day;
fi
dateTemp="$year-$month-$day";
echo $dateTemp;
Когда я запускаю его, я получаю выход по следующему:
-11-28
-10-27
-01-11
-01-07
-01-07
Таким образом, вы можете видеть это правильно Добавляя $ месяца и $ переменного дня , но значение $ year не добавляется к переменной $ dateTemp. Это тоже странно, потому что переменная $ year не пуста, так как если я повторю это, это даст мне правильный год. Образец кода находится в формате «1 января 2016 года», хотя я пытаюсь преобразовать его в YYYY-MM-DD.
Если бы кто-нибудь мог помочь мне в этом, я был бы признателен.
Cheers!
Каков выходной сигнал 'echo '$ year? \ Hexdump -C'? Почему вы касаетесь '$ IFS'? – Mat
Кажется, что $ year содержит '$ '\ r'' в конце. – choroba
http://i.imgur.com/G1D3yKx.png Я имею в виду, что переменная $ year, кажется, правильно обновляется ... – Noob