Не удается запустить сценарии оболочки

Недавно я переустановил Mojave на свой Macbook Pro. Перед установкой у меня было написано несколько bash-скриптов, и все они запускались двойным щелчком по ним. Все они являются расширениями .command. Для каждого файла я запустил chmod +x, чтобы сделать его исполняемым. Шебанг в каждом из сценариев: #! /usr/bin/env bash

После установки я не могу запустить скрипты двойным щелчком. Если я получаю доступ к сценариям через терминал, они работают нормально. Но если я дважды щелкну, откроется окно терминала с заголовком скрипта, но ничего не происходит, скрипт никогда не выполняется.

Я установил bash через homebrew, затем ввел /usr/local/bin/bash в /etc/shells. В терминале, если я ввожу which bash, он возвращает /usr/local/bin/bash. Если я ввожу echo $SHELL, он возвращает /bin/bash.

Я хочу, чтобы в моей системе работал bash 5, который был установлен доморощенным. Я думал, что мой терминал настроен правильно, но я не могу понять это. Любая помощь будет чрезвычайно признательна.

Я также приложил скриншот вывода терминала на случай, если это будет полезно. Я написал сценарий для примера под названием «hello.command»:

#! /usr/bin/env bash

echo 'Hello'

Вот что появляется, если я дважды щелкну по нему:

введите здесь описание изображения


person Anthony    schedule 24.09.2019    source источник
comment
Вы установили его в качестве оболочки по умолчанию с помощью chsh -s /usr/local/bin/bash?   -  person Benjamin W.    schedule 24.09.2019
comment
Да, на самом деле, когда я вхожу, он запрашивает мой пароль, а затем возвращает этот chsh: /usr/local/bin/bash: нестандартная оболочка, не должно ли этого происходить?   -  person Anthony    schedule 24.09.2019
comment
Вы пробовали это до того, как отредактировали /etc/shells? Это то, что вы увидите, если оболочка, которую вы пытаетесь установить по умолчанию, отсутствует.   -  person Benjamin W.    schedule 24.09.2019
comment
Ах Бен спасибо!!! Честно говоря, я вполне мог бы и даже не осознавать этого. Я просто сбросил /etc/shells по умолчанию, установил оболочку на /bin/bash, удалил доморощенный bash, переустановил его, добавил в файл /etc/shells, затем переключил его, и все работает отлично. Спасибо за помощь в моей глупой ошибке   -  person Anthony    schedule 24.09.2019


Ответы (1)


В /etc/shells добавьте запись на новой строке:

/usr/local/bin/bash

Обратите внимание, что для добавления этой записи в /etc/shells вам потребуются привилегии root.

person Mihir Luthra    schedule 24.09.2019
comment
Они упоминают, что они сделали это в вопросе. - person Benjamin W.; 24.09.2019
comment
@Anthony Извините, я пропустил это, не могли бы вы попробовать перейти к terminal, затем preferences и вместо default login shell изменить его на /usr/local/bin/bash - person Mihir Luthra; 24.09.2019
comment
это не проблема, я очень ценю помощь в этом, я не слишком уверен в своих способностях с Mac. На самом деле у меня тоже был скриншот, но он позволил мне загрузить только один файл. В оболочке открывается с уже установленным полным путем, а затем /usr/local/bin/bash - person Anthony; 24.09.2019
comment
@ Энтони, не могли бы вы показать мне вывод echo $PATH. - person Mihir Luthra; 24.09.2019
comment
Просто заработало, @Benjamin W. заставил меня понять, что я сделал некоторые вещи не по порядку. Спасибо вам обоим за вашу помощь - person Anthony; 24.09.2019