• la riga dell'if non può funzionare, basta anche solo l'evidenziazione della sintassi del forum a fartelo capire: se apri delle virgolette in quel modo il contenuto (sostituzioni di variabili a parte) è interpretato come testo, mentre quello che vuoi tu è fare un confronto tra output di comandi; per catturare l'output dei comandi si usano i backtick (`comando`) o la sintassi $(comando) (entrambe si possono - e nel caso dell'[ si devono - includere tra apici doppi);
  • la chiusa quadra va staccata dall'ultimo carattere dell'espressione del confronto (deve rimanere come argomento separato);
  • cat stampa il contenuto del file specificato, ma in result tu hai già messo il contenuto del file stesso; cat $result darà risultati bizzarri (probabilmente un mucchio di file not found, visto che cercherà dei file con nome corrispondente alle varie righe di /etc/group
  • in generale, comandi come cut & co. non necessitano di un "cat" in pipe all'inizio - puoi specificare il file da aprire direttamente sulla riga di comando.


Alla luce di tutto questo, si può riscrivere il tutto come:
codice:
#!/bin/bash
if [ "`cut /etc/group -f1 -d:`" = "`cut /etc/group -f4 -d:`" ]
then
    echo OK
fi