problema programacion en Shell

buster

#!/bin/sh
echo "Escriba el archivo de entrada: "
read fichentrada
echo "Escriba el archivo de salida: "
read fichsalida
cat $fichentrada > $fichsalida
until [ $b = FIN ]
do
echo "Escriba el caracter a cambiar: "
read a
if [ $a = FIN ]
then
break
fi
echo "escriba el nuevo caracter: "
read b
cat $fichsalida | tr $a $b > $fichsalida
done

Cada vez que realiza un nuevo bucle me sale un error:
./ejercicio.sh: line 7: [: =: unary operator expected
¿Sabeis a que es debido?

Gracias

CuBaN0

#1 la causa mas o menos en general es que tas usando o probando algo con binario, digamos = operador. Y lo que pasaría es que una de las dos partes es un string nulo y da error. Digamos provoca un attempt por el mal uso del =. Y por el eso el proximo bucle no se realiza.

Y

no es = es ==

until[$b == "FIN"] (fin con comillas)

Usuarios habituales