如何从终端运行.sh或.bat文件?

时间:2013-06-10 00:09:52

标签: bash tomcat terminal

我这里有一个非常基本的问题,这对我来说是偶然发生的,直到现在,我才忽视它。我下载了tomcat web服务器,“Murach的Java Servlets和JSP”一书告诉我导航到tomcat / bin目录并启动我在终端输入的服务器

$ startup

然而,我收到错误

-bash: startup: command not found

此目录中的相关文件是startup.sh和startup.bat。键入这两个都会返回相同的错误消息

所以我的问题是,什么是.bat和sh文件,以及如何运行这些文件?我已经阅读了几个不同语言和软件程序的教程,有时当教程说在命令行中执行一堆文件时,我收到“命令未找到”错误。有时候它有效,有时则不然。这对我来说很困惑,那么解决这些“命令未找到”终端问题的常用解决方案是什么?

11 个答案:

答案 0 :(得分:48)

.sh适用于* nix系统,.bat适用于Windows。由于您的示例显示了bash错误,并且您提到了Terminal,我假设它是您正在使用的OS X.

在这种情况下,您应该转到该文件夹​​并输入:

./startup.sh

./只是意味着你应该调用当前目录中的脚本。 (或者,只需键入startup.sh的完整路径)。如果它不起作用,请检查startup.sh是否具有执行权限。

答案 1 :(得分:9)

这是因为脚本不在$ PATH中。使用

./scriptname

您也可以将其复制到$ PATH中的一个文件夹或更改$ PATH变量,这样您就可以始终只使用脚本名称。但请注意,您的当前文件夹不在$ PATH中是有原因的。这可能存在安全风险。

如果您仍然无法执行脚本,则可能需要检查其权限 - 显然,您必须具有执行权限才能执行它。使用

chmod u+x scriptname

.sh文件是Unix shell脚本。 .bat文件是Windows批处理文件。

答案 2 :(得分:6)

在linux终端中键入bash script_name.sh./script_name。在使用./script_name之前,您可以通过sudo chmod 700 script_name使脚本可执行并在Windows中键入script_name.bat

答案 3 :(得分:3)

拖动和删除

像我这样的懒惰Mac用户最简单的方法:将startup.sh文件从Finder拖放到终端窗口,然后按Return键。

要关闭Tomcat,请对shutdown.sh执行相同操作。

您可以删除所有.bat个文件,因为它们仅适用于Windows PC,在Mac上不能用于其他Unix计算机。我删除了它们,因为它更容易阅读该文件夹的列表。

文件权限

我发现由于文件权限限制在启动期间抛出错误,我的Mac上无法运行全新的Tomcat下载。我使用BatChmod应用程序围绕equivelant Unix命令包装GUI来重置文件权限。

端口转发

Unix系统保护对1024以下端口的访问。因此,如果要将端口80与Tomcat一起使用,则需要了解如何进行“端口转发”以将传入请求转发到默认情况下Tomcat侦听的端口8080。要进行端口转发,您可以向Mac OS X(和BSD)内置的数据包过滤(防火墙)应用程序发出命令。在过去,我们使用ipfw。在Mac OS X 10.7(Lion)和更高版本中,Apple正在转向更新的工具pf

答案 4 :(得分:2)

在Windows上输入startupstartup.bat

在unix类型./startup.sh

(假设您位于tomcat / bin目录中)

答案 5 :(得分:1)

输入

chmod 755 scriptname.sh

换句话说,请允许自己运行该文件。我猜你只有r / w权限。

答案 6 :(得分:0)

批处理文件可以在Linux上运行。本文介绍了如何(http://www.linux.org/threads/running-windows-batch-files-on-linux.7610/)。

答案 7 :(得分:0)

基于IsmailS' comment,在OSX上对我有用的命令是:

sudo sh ./startup.sh

答案 8 :(得分:0)

  1. 在 .sh 文件顶部添加 #!bin/bash
  2. sudo chmod +x 你的 .sh 文件
  3. ./your.sh 文件

这些步骤有效~

答案 9 :(得分:-1)

我在优胜美地的* .sh文件中遇到了这个问题,并且无法弄清楚桌面上某个文件夹的正确路径...在咬牙切齿之后,将文件拖入终端窗口;嘿presto !!

答案 10 :(得分:-2)

我的建议不是来自终端;然而,这是一种更容易的方式。

对于.bat文件,您可以通过Wine运行它们。使用此视频可帮助您安装它:https://www.youtube.com/watch?v=DkS8i_blVCA。本视频将介绍如何安装,设置和使用Wine。它就像在Wine中打开.bat文件一样简单,它将像在Windows上一样运行。

通过这个,您还可以运行.exe文件以及.sh文件。

这比尝试计算各种终端代码要简单得多。