Я считаю, что if [ -f $1 ]
просто проверяет, существует ли файл, он не различает guish текстовые файлы или другие файлы.
Как уже упоминалось в комментариях, вы можете использовать Команда file
для этого, но вывод может зависеть от версии Linux, с которой вы работаете, я даже считаю, что вывод настраивается. Поэтому попробуйте запустить file SomeFile
(что дает SomeFile: ASCII text
в случае текстового файла в моем случае).