49

我目前使用一个.bat用于调用 java 文件的文件。如果我想在 Mac OS 上使用相同的功能,我会做哪些格式更改?(除非.batMac OS 上的等价物是.sh格式?)

java -cp  ".;.\supportlibraries\Framework_Core.jar;.\supportlibraries\Framework_DataTable.jar;.\supportlibraries\Framework_Reporting.jar;.\supportlibraries\Framework_Utilities.jar;.\supportlibraries\poi-3.8-20120326.jar;D:\downloads\Selenium 2.0\selenium-server-standalone-2.19.0.jar" allocator.testTrack

任何援助将不胜感激。

4

3 回答 3

37

也许你可以在这里找到答案?相当于 Mac 上的可双击 .sh 和 .bat?

通常您可以为 Mac OS 创建 bash 脚本,在其中放置与批处理文件中类似的命令。对于您的情况,创建 bash 文件并输入相同的命令,但将反斜杠更改为常规的。

您的文件将类似于:

#! /bin/bash
java -cp  ".;./supportlibraries/Framework_Core.jar;./supportlibraries/Framework_DataTable.jar;./supportlibraries/Framework_Reporting.jar;./supportlibraries/Framework_Utilities.jar;./supportlibraries/poi-3.8-20120326.jar;PATH_TO_YOUR_SELENIUM_SERVER_FOLDER/selenium-server-standalone-2.19.0.jar" allocator.testTrack

将上述路径中的文件夹更改为相关文件夹。

然后使此脚本可执行:打开终端并使用您的脚本导航到文件夹。然后更改此文件运行命令的读写执行权限:

chmod 755 scriptname.sh

然后你可以像任何其他常规脚本一样运行它:./scriptname.sh

或者您可以运行它将文件传递给 bash:

bash scriptname.sh
于 2012-12-28T05:46:16.860 回答
18

通常的约定是将它放在一个看起来像这样的 .sh 文件中 -

#!/bin/bash
java -cp  ".;./supportlibraries/Framework_Core.jar;... etc

注意'\'变成'/'。

你可以执行为

sh myfile.sh

或在文件上设置 x 位

chmod +x myfile.sh

然后打电话

myfile.sh
于 2012-12-28T05:49:14.037 回答
2

我在论坛页面中找到了一些有用的信息,引用如下。
由此,主要是粗体格式的句子,我的答案是:

  • 制作 .bat 文件的 bash(shell)脚本版本(与其他
    答案一样,\更改为/文件路径)。例如:

    # File "example.command":
    #!/bin/bash
    java -cp  ".;./supportlibraries/Framework_Core.jar; ...etc.
    
  • 然后将其重命名为 Mac OS 文件扩展名.command
    这应该使脚本使用终端应用程序运行。

  • 如果应用程序用户要在 Linux 上使用该文件的 bash 脚本版本
    或从命令行运行它,他们需要
    使用此命令在包含该文件的文件夹中添加可执行权限(更改模式位):

    chmod +rx [filename].sh
    #or:# chmod +rx [filename].command
    

论坛页面问题:

美好的一天,[...] 我想知道是否有一些“简单”的规则来编写等效
的 Windows (DOS) bat 文件。我只想单击一个文件并让它运行。

问题后一些答案的信息:

编写一个 shell 脚本,并给它扩展名“.command”。例如:

#!/bin/bash 
printf "Hello World\n" 

- 2010 年 3 月 23 日,托尼 T1。

DOS .BAT 文件试图将类似于 UNIX 脚本的想法引入 MS-DOS。
通常,UNIX 允许您创建一个包含命令的文本文件,并通过简单地
将文本文件标记为可执行文件(而不是给它一个特定的后缀)来运行它。这就是 OS X 的做法。

然而,OS X 增加了一个特性,如果你给文件加上后缀.command,Finder
将运行 Terminal.app 来执行它(类似于 BAT 文件在 Windows 中的工作方式)。

然而,与 MS-DOS 不同的是,UNIX(和 OS X)允许您指定脚本使用的解释器
。解释器是从文件中读取文本并
对其进行处理的程序。[...] 在 UNIX 中,您可以通过使
文本文件中的第一行以“#!”开头来指定要使用的解释器。后面是解释器的路径。例如 [...]

#!/bin/sh
echo Hello World

- 2010 年 3 月 23 日,JD McIninch。

此外,来自Mac 上可双击的 .sh 和 .bat 等效的已接受答案的信息?:

在 mac 上,有一个特定的扩展名可以
通过双击来执行 shell 脚本:这是.command.

于 2018-10-04T15:59:46.997 回答