Вы уверены, что сохраняете скрипт в виде простого текстового файла?Если вы используете TextEdit, возможно, вы сохраняете RTF.Выберите «Формат»> «Создать обычный текст» и при необходимости сохраните файл.
Вы также можете проверить файл из оболочки, чтобы убедиться, что он начинается с ожидаемой строки Шебанга.Например:
nicholas@mary ~> file msa.sh
msa.sh: Rich Text Format data, version 1, ANSI
nicholas@mary ~> head -1 msa.sh
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
Это , а не , что вы хотите.
nicholas@mary ~> file msa.sh
msa.sh: Bourne-Again shell script, ASCII text executable
nicholas@mary ~> head -1 msa.sh
#!/bin/bash
И это то, что вы хотите.