Я пытаюсь написать простой скрипт, в котором, если в строке 7 запятых, будет возвращено либо true, либо false. Но я столкнулся с парой ошибок. Первая ошибка исходит от grep, если я уберу -o, я все равно получу ошибку. И я не уверен, почему отображается 0 и почему он возвращается как false? У меня также проблемы с равным; так как ни -eq, ни == не работают.
Скрипт:
#!/bin/bash
str="a,g,5,d,s,c,f,s"
stat=grep -o "," <<< "$str" | wc -l
if [ $stat == '7' ];then
echo "true"
else
echo "false"
fi
Вот результат, который я получаю:
./tesh.sh
./tesh.sh: line 3: -0: command not found
0
./tesh.sh: line 4: [: ==: unary operator expected
false