Во-первых, я использую Mac.
Далее мне нужно выполнить этот «file.sh», мы его назовем. Каждый раз, когда мне нужно выполнить его, я должен открыть терминал и набрать:
cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh
Это нормально, но я чувствую, что было бы намного быстрее, если бы я запускал файл двойным щелчком, не так ли?
Итак, мой вопрос, как мне сделать этот файл исполняемым с помощью двойного щелчка?
Мои идеи были либо:
а) набрать в терминале что-то вроде chmod и изменить права доступа?
б) создать файл, поместить в него код, который я написал выше ^, а затем сделать этот файл исполняемым?
в) сделать автоматизацию, чтобы как-то это сделать?
Какой путь лучше или есть еще лучший способ? Также, пожалуйста, объясните как можно больше, я новичок в Терминале. Спасибо.
bash
macos
terminal
executable
Иаков
источник
источник
Ответы:
По умолчанию
*.sh
файлы открываются в текстовом редакторе (Xcode или TextEdit). Чтобы создать скрипт , который будет выполняться в терминале , когда вы открываете его, назовите его с «командой» расширением, например,file.command
. По умолчанию они отправляются в терминал, который запустит файл в виде сценария оболочки.Вам также необходимо убедиться, что файл является исполняемым, например:
Без этого Терминал откажется выполнить его.
Обратите внимание, что сценарий не обязательно должен начинаться с
#!
префикса в этом конкретном сценарии, потому что Terminal специально организует его выполнение с вашей оболочкой по умолчанию. (Конечно, вы можете добавить#!
строку, если вы хотите настроить, какая оболочка используется, или если вы хотите убедиться, что вы можете выполнить ее из командной строки при использовании другой оболочки.)Также обратите внимание, что Терминал выполняет сценарий оболочки без изменения рабочего каталога. Вам нужно будет начать свой скрипт с
cd
команды, если вам действительно нужно запустить ее с определенным рабочим каталогом.источник
cd "`dirname "$0"`"
для установки текущего рабочего каталога каталог, в котором находится сценарий оболочки.open -n ...
команды. Это работает, но каждый раз, когда открывается окно терминала, и отображается сообщение «[Процесс завершен]». Можно ли как-то предотвратить появление окна терминала?Удалите расширение полностью, а затем дважды щелкните его. Большинство сценариев системной оболочки похожи на это. Пока у него есть Шебанг, это будет работать.
источник
Вы можете просто сказать Finder, чтобы открыть
.sh
файл в терминале:Это будет иметь тот же эффект, что и переименование, за
.command
исключением того, что ... вам не нужно переименовывать его :)источник
Имя файла должно быть в двойных кавычках. Так как я использую mac-> В моем случае содержимое пакетного файла является
cd / Users / yourName / Documents / SeleniumServer
java -jar selenium-server-standalone-3.3.1.jar -role hub
Это будет работать наверняка
источник
вы можете изменить исполняемый файл, используя
chmod
этои использовать эту команду для выполнения
источник