【问题标题】:How to change Example.bat to Example.pl?如何将 Example.bat 更改为 Example.pl?
【发布时间】:2012-07-01 08:54:46
【问题描述】:

我已经阅读了其他讨论 .bat 到 L/unix 转换的线程 enter link description here,但没有一个令人满意。在编写自己的脚本时,我也尝试了很多 hack 类型的方法。

我有以下 example.bat 脚本,它代表了我想在 unix 上运行的那种脚本。

代码:

echo "Example.bat"

perl script1 param.in newParam.in

perl script2 newParam.in stuff.D2D stuff.D2C

program.exe stuff.D2C

perl script3 stuff.DIS results.out

我的问题是我不知道如何处理 unix bash shell 中的 perl 和 program.exe。我曾尝试将它们放入系统()中,但这不起作用。有人可以帮帮我吗? 谢谢!

【问题讨论】:

  • 请包含您已经编写的代码以及它返回的错误。
  • 为什么不使用 shell 脚本呢?无论如何,.exe 将是您的问题。
  • 以上,我知道,我知道。感谢您提出这一点。问题是,当我运行上述程序时,它可以在 Windows 中运行。但是,当我在 MacOSX 上使用 bash 时,它会“运行”但只报告不正确的数据。所以它看起来正确,没有报告错误,只是搞砸了。因此,我认为我需要手动将其转换为可以在 Unix 上运行的 perl 脚本。谢谢。 :-)

标签: linux perl shell scripting


【解决方案1】:

假设您在 $PATH 的某个位置有一个名为 program.exe 的可执行文件(您很可能 - Unix 可执行文件不必以 .exe 结尾,但没有任何说明它们不能),代码您粘贴的是一个有效的 shell 脚本。如果你将它保存在一个名为 example.bat 的文件中,你可以通过键入来运行它

sh example.bat

进入 shell 提示符。

当然,Unix shell 脚本通常被赋予后缀.sh——或者根本没有后缀——而不是.bat。此外,如果您希望您的脚本可以直接执行,只需键入

example.sh

而不是sh example.sh,你需要做三件事:

  1. 以“shebang”行开始脚本:以#! 开头的行和要用于运行它的shell 解释器的完整路径(例如/bin/sh 用于基本Bourne shell),如下所示:

    #!/bin/sh
    
    echo "This is a shell script."
    
    # ... more commands here ...
    
  2. 使用chmod 命令将您的脚本标记为可执行文件,例如

    chmod a+rx example.sh
    
  3. 将脚本放在$PATH 旁边的某个位置。在 Unix 上,默认路径通常不会包含当前目录.,因此您不能仅通过输入名称从当前目录执行程序。但是,您可以通过指定显式路径来运行它们,例如

    ./example.sh    # runs example.sh from the current directory
    

    要找出您的$PATH 是什么,只需在shell 中输入echo $PATH

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 2014-11-23
    • 2018-11-03
    • 2010-11-26
    • 2012-10-19
    • 2019-08-06
    相关资源
    最近更新 更多