o caractere especial de caractere de retrocesso retornará o que for avaliado dentro dos backticks. então uname -r | grep fc
retornará algo apenas se a versão do seu kernel contiver as letras fc. Se não for fc, será apenas o caractere de nova linha. Portanto, a instrução if será avaliada como true somente quando fc não estiver contido na string do kernel que é retornada do uname. tente fazer
export a='uname -r'
echo $a
como um teste