Слово зубоскалить в современном русском языке имеет только одно значение — «грубовато шутить, насмехаться» (см. словари). В Вашем примере более уместно будет использовать выражения показывал зубы или грозно рычал, показывая зубы, чтобы описать поведение шакала.
Запятая нужна, она закрывает придаточную часть. Рекомендуем, однако, заменить тире на двоеточие, поскольку вторая часть бессоюзного сложного предложения называет причину того, что сказано в первой: Но и так было ясно, что поезд вот-вот въедет в туннель: склоны по обе стороны окна, покрытые сухой травой, надвигались всё ближе.
Это не плеоназм. Беременными могут быть животные. См., например: Священны поэтому гнезда птиц, священны беременные самки; если охотнику досталась таковая ― он обязан «отпустить ее Артемиде» (Ф. Ф. Зелинский. Древнегреческая религия).
Указанная запятая не требуется.
Мы не выполняем домашние задания.
Верно: надеваю одежду.
Запятая не ставится.
В следующих случаях вместо дефиса должен употребляться знак тире.
1. В сочетаниях с приложением, если одна из частей содержит пробел.
Примеры с неоднословными определяемыми: встреча с гостями Олимпиады — иностранцами, старшего лейтенанта — артиллериста, участников войны — инвалидов, о Михаиле Булгакове — актёре, у научного сотрудника — космонавта. Ср. гости-иностранцы, лейтенант-артиллерист, воины-инвалиды, Булгаков-актёр, лётчик-космонавт.
Примеры с неоднословными приложениями: творчество поэтов — современников Пушкина; статьи о Горьком — общественном деятеле, о Маршаке — переводчике Шекспира; печальная судьба дома — памятника архитектуры; обратиться к директору — художественному руководителю; среди стран — участников переговоров. Ср. поэты-современники, Горький-писатель, Маршак-переводчик, дом-памятник, директор-распорядитель.
2. В сочетаниях с приложением, если одна из частей в свою очередь является сочетанием с приложением и содержит дефис, напр.: рассказ о студенте-медике — альпинисте; встреча с приятелем — шахматистом-любителем; у соседа — писателя-фантаста. Ср. студент-альпинист, сосед-писатель.
3. В парных конструкциях типа полудеревни — полу дачные поселки. Ср. полусон-полуявь.
4. В сочетаниях, имеющих значение приблизительного указания на количество или время чего-либо, если хотя бы одна из частей содержит пробел, напр.: Приехал всего на день — на два. Он был в этом городе раз двадцать — двадцать пять. Это будет стоить двести — двести пятьдесят рублей. Она приедет в январе — начале февраля. Ср.: день-два, раз двадцать-тридцать, рублей двести-триста, в январе-феврале.
5. В сочетаниях с цифровыми обозначениями, если цифре предшествует часть, содержащая пробел, напр.: операция «Меченые атомы — 2», сценарий фильма «Место встречи изменить нельзя — 2» (ср. фильм «Спрут-5»).