Подтвердить что ты не робот

Как я могу запускать файлы .sh или .bat из терминала?

У меня здесь довольно сложная проблема, которая так беспорядочно для меня, что до сих пор я просто проигнорировал ее. Я загрузил веб-сервер tomcat и книгу "Murach Java Servlets and JSP" рассказывает мне перейти в каталог tomcat/bin и запустить сервер, который я набрал в терминале

$startup

Однако я получаю сообщение об ошибке

-bash: startup: command not found

Соответствующими файлами в этом каталоге являются startup.sh и startup.bat. Набрав оба из них, возвращается одно и то же сообщение об ошибке

Итак, мои вопросы: какие файлы .bat и sh, и как я могу запускать эти файлы? Я прочитал несколько руководств для разных языков и программ, а в некоторых случаях, когда в учебнике написано множество файлов в командной строке, я получаю ошибку "команда не найдена". Иногда это работает, иногда это не так. Это вызывает у меня недоумение, так что же некоторые общие решения для решения такого рода "команда не найдена" Проблемы с терминалом?

4b9b3361

Ответ 1

.sh предназначен для систем * nix, а .bat - для Windows. Так как ваш пример показывает ошибку bash, и вы упоминаете Terminal, я предполагаю, что OS X вы используете.

В этом случае вы должны перейти в папку и ввести:

./startup.sh

./ означает, что вы должны вызвать script, расположенный в текущем каталоге. (В качестве альтернативы просто введите полный путь startup.sh). Если он не работает, проверьте, есть ли у startup.sh права выполнения.

Ответ 2

Это связано с тем, что script не находится в вашей $PATH. Используйте

./scriptname

Вы также можете скопировать это в одну из папок вашего $PATH или изменить переменную $PATH, чтобы вы всегда могли использовать только имя script. Будьте осторожны, однако, есть причина, почему ваша текущая папка не находится в $PATH. Это может представлять угрозу безопасности.

Если у вас все еще есть проблемы с выполнением script, вы можете проверить его разрешения - вы должны иметь разрешения на выполнение для его выполнения, очевидно. Используйте

chmod u+x scriptname

Файл A .sh представляет собой оболочку Unix script. Файл .bat представляет собой пакетный файл Windows.

Ответ 3

Введите bash script_name.sh или ./script_name в терминале linux. Перед использованием ./script_name сделайте script выполнимым sudo chmod 700 script_name и введите script_name.bat в окна.

Ответ 4

Drag-And-Drop

Самый простой способ для ленивого пользователя Mac, как и я: перетащите файл startup.sh из окна Finder в терминал и нажмите Return.

Чтобы отключить Tomcat, сделайте то же самое с shutdown.sh.

Вы можете удалить все файлы .bat, так как они предназначены только для ПК с ОС Windows, без использования на Mac с другим компьютером Unix. Я удаляю их, так как упрощает чтение этого списка.

Разрешения файла

Я нахожу, что новая загрузка Tomcat не будет запускаться на моем Mac из-за ограничений разрешений на файлы, бросающих ошибки во время запуска. Я использую приложение BatChmod, которое обертывает графический интерфейс вокруг эквивалентных команд Unix для разрешений файлов reset.

Port-Forwarding

Unix-системы защищают доступ к портам с номерами ниже 1024. Поэтому, если вы хотите использовать порт 80 с Tomcat, вам нужно научиться выполнять "переадресацию портов" для пересылки входящих запросов на порт 8080, где Tomcat слушает по умолчанию. Чтобы выполнить переадресацию портов, вы выдаете команды для приложения фильтрации пакетов (брандмауэра), встроенного в Mac OS X (и BSD). В старые времена мы использовали ipfw. В Mac OS X 10.7 (Lion), а затем Apple переходит к более новому инструменту, pf.

Ответ 5

В окнах введите либо startup, либо startup.bat

В стиле Unix ./startup.sh

(если вы находитесь в каталоге tomcat/bin)

Ответ 6

Введите

chmod 755 scriptname.sh

Другими словами, дайте себе разрешение на запуск файла. Я предполагаю, что у вас есть только разрешение r/w.

Ответ 8

Основываясь на комментарии IsmailS, команда, которая работала у меня на OSX, была:

sudo sh ./startup.sh

Ответ 9

У меня была эта проблема для файлов *.sh в Yosemite и не могла понять, какой правильный путь для папки на моем рабочем столе... после некоторого скрежещения зубов перетащил сам файл в окно терминала; эй престо!

Ответ 10

Мое предложение не исходит от Терминала; однако это намного проще.

Для файлов .bat вы можете запускать их через Wine. Используйте это видео, чтобы помочь вам установить его: https://www.youtube.com/watch?v=DkS8i_blVCA. В этом видео рассказывается, как установить, настроить и использовать Wine. Это так же просто, как открытие файла .bat в Wine, и он будет работать так же, как и в Windows.

С помощью этого вы также можете запускать .exe файлы, а также файлы .sh.

Это намного проще, чем пытаться разработать все виды терминального кода.