Возможно, проще ...
bash-3.2$ if [ "$(sed -n '1p' file)" = "$(sed -n '$p' file)" ]; then
echo 'First and last lines are the same'
else
echo 'First and last lines differ'
fi
Обновление для ответа на вопросы Яна.
bash-3.2$ cat file
-z
-G
bash-3.2$ if [ "$(sed -n '1p' file)" = "$(sed -n '$p' file)" ]; then
> echo 'First and last lines are the same'
> else
> echo 'First and last lines differ'
> fi
First and last lines differ
Я предпочитаю sed
для получения первой и последней строк файла, потому что одна и та же командная строка работает в Linux, Mac OS и Solaris. Командные строки head
и tail
отличаются для Linux и Solaris.