LINUX.ORG.RU
решено ФорумAdmin

где ошибка в фунции

 


0

1
#!/bin/bash
compare()
{
	
x=$1

y=$2	
	
while [[ $x < $y ]];

do 

echo $x

x=$[ x+1 ]

done

}
 
v=$(compare 1 20)

echo $v

подскажите пожалуйста, где ошибка цикл доходит до трех и стопается



Последнее исправление: beastie (всего исправлений: 3)

Правильно спросить «где ошибки», а не «где ошибка». Читай ман по башу или tldp, как проводить тесты на сравнение, как возвращать значение из функции, как инкрементировать значение.

anonymous
()
Ответ на: комментарий от anonymous

цикл без функции работает норм

Ок спасибо но сам цикл без функции работает норм

w1rox
() автор топика
Ответ на: комментарий от Ja-Ja-Hey-Ho

> и lt разве не идентичны?

спасибо добрый человек!

подскажи если не сложно в чем разница -lt и «<», вроде же смысл один - «меньше» ?

w1rox
() автор топика
Ответ на: комментарий от vodz

local -i и (( x < y ))

Спасибо

такой код радует глаза и разум ))

w1rox
() автор топика
Ответ на: комментарий от legolegs

Надеюсь, ты просто тренируешься, а не переизобретаешь seq 1 19

Да начал изучать bash )), слышал много критики в его адрес, что он корявый и не юзабельный, но несмотря на специфичность и некоторые неудобства(например массивы ИМХО) в целом вполне пригоден для своих задач

w1rox
() автор топика
Ответ на: комментарий от Ja-Ja-Hey-Ho

while [[ $x < $y ]]; -> while [[ $x -lt $y ]];

while [[ $x < $y ]];

странно что на эту конструкцию bash не ругается сразу, а только на третьей итерации

w1rox
() автор топика
Ответ на: while [[ $x < $y ]]; -> while [[ $x -lt $y ]]; от w1rox

bash не ругается сразу, а только на третьей итерации

Он вообще не ругается. Просто по алфавиту «2» стоит до «20», а «3» уже после.

legolegs ★★★★★
()

Для его задач массивы и сравнения чисел и строк вообще не особо-то нужны. Можно делать вещи и без этой императивщины, которая действительно в питоне сделана лучше.

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

можно ли улучшить

Почему так резко - императивщина))?

С дебагом в bash тоже не радужно, есть ли способы повысить его вербозность и ясность?

w1rox
() автор топика
Ответ на: можно ли улучшить от w1rox

есть ли способы повысить его вербозность и ясность?

Немного есть:

#!/bin/bash
set -x

Bootmen ☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.