Bash Shebang игнорируется - скрипт по-прежнему выполняется с Zsh - PullRequest
0 голосов
/ 09 января 2019

У меня есть скрипт на Mac OSX, который выполняется при открытии нового терминала. Это указано в .zprofile. У него есть bash shebang, но он все еще выполняется с помощью zsh (моя оболочка по умолчанию). В чем может быть проблема здесь?

#!/bin/bash

Основная проблема заключается в том, что я не могу выполнить скрипт из-за различий в синтаксисе zsh. Когда я проанализировал, что может вызвать это, я понял, что шебанг просто игнорируется.

У меня есть двоичный файл / bin / bash.

Edit:

~/.zprofile выполняет скрипт так:

. ~/.script.bash

1 Ответ

0 голосов
/ 09 января 2019

Вы написали в вас ~/.zprofile следующую строку:

. ~/.script.bash

Это похоже на

source ~/.script.bash

Что означает, что ваш сценарий получен и не выполнен. Вы должны иметь что-то вроде:

~/.script.bash

вместо этого, который будет выполняться в среде, определенной шебангом. Обратите внимание, что файл должен быть исполняемым.

. file [ arg ... ]: Считывание команд из file и выполнение их в текущей оболочке .

источник: man zshall

...