@DimiDr0lik

Почему не проверяется условие bash?

Подскажите пожалуйста почему в каждом из условии, вторая часть условия, проверка проходит как истина?
Нужно чтоб условие выполнялось один раз до изменения состояния значения stat, вчем моя ошибка?
#!/bin/bash
val="true"
while [ "1" -ne "0" ]
do
#stat=`iwinfo wlan0 assoclist | grep -o B0:E2:35:C5:F5:0A`
stat="dsfsdf"
if [[ -n "$stat" && "$val"=="true" ]]; then
echo $val
val=false
echo 1
echo $stat
echo $val
elif ([ -z "$stat" ] && [[ "$val" -eq "false" ]]); then
val="true"
echo 2
echo $stat
echo $val
fi
sleep 5
done
exit
  • Вопрос задан
  • 261 просмотр
Решения вопроса 1
@DimiDr0lik Автор вопроса
разобрался с помощью статьи https://habrahabr.ru/post/47706/

#!/bin/bash
val=true
while true
do
#stat=`iwinfo wlan0 assoclist | grep -o B0:E2:35:C5:F5:0A`
stat="dsfsdf"
if [ -n "$stat" -a true = "$val" ]; then
echo $val
val=false
echo $stat
echo $val
elif [ -z "$stat" -a false = "$val" ]; then
val="true"
echo $stat
echo $val
fi
sleep 5
done
exit
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
[[ "$val" -eq "false" ]]); then

"-eq" только для числовых сравнений. Строки сравниваются по = , но лучше писать ==
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы