Witam mam problem z napisaniem programu :
Napisz program w języku powłoki, który będzie sprawdzał czy dane wyrażenie logiczne jest
tautologią.

program ma byc napisany w sh i maxymalnie ma przyjmowac 20 zmiennych logicznych dopuszczalne
operatory logiczne to (Koniunkcja, alternatywa, implikacja, równoważność)

Prosze o pomoc mam cos takiego:

#!/bin/bash


echo "Operatory logiczne mozliwe do uzycia ( Koniunkcja, alternatywa, implikacja, rownowaznosc )"

i=0
p=0
numzm=0
tab=( )
tabvalue=( )
expression=""

pobierz_wyrazenie() {
echo "Wprowadz wyrazenie logiczne:"
read expression;
}


# {

testowanie_tautologi() {
for I in tab
do
	if [ !${#tab[i]} ]
	then
		p=1;
	fi
done

if [ !p ]
then
	return 1;
fi

for I in tab
do
	if [ ${#tab[i]} ]
	then
		p=1;
	fi
done

if [ !p ]
then
	return 2;
fi

return 0;

# }

}

# PROGRAM !

zm1=0

#pobierz_wyrazenie expression
if [ zm1==1 ]
then
	pobierz_wyrazenie expression
fi

if [ testowanie_tautologi tabvalue numzm == 1 ]
then
	echo "Podane Wyrazenie jest tautologia"
elif [ testowanie_tautologi tabvalue numzm == 2 ]
then
	echo "Podane wyrazenie nie jest tautologia"
else
	echo "Podane Wyrazenie jest niewlasciwe"

if [ zm1 != 2 ]
then
	echo "Prosze podac dokladnie jedno wyrazenie logiczne"
	return 0;
fi

	if [ testowanie_tautologi tabvalue numzm == 1 ]
	then
		echo "Podane wyrazenie jest tautologia"
	elif [ testowanie_tautologi tabvalue numzm == 2 ]
	then
		echo "Podane wyrazenie jest sprzeczne"
	else
		echo "Podane wyrazenie jest niewlasciwe"
	fi

return 0;