2

我已阅读其他线程在此处输入链接描述,讨论 .bat 到 L/unix 的转换,但没有一个令人满意。在编写自己的脚本时,我也尝试了很多 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。我曾尝试将它们放入 system() 中,但这不起作用。有人可以帮帮我吗?谢谢!

4

1 回答 1

2

假设你有一个program.exe在你的某个地方命名的可执行文件$PATH(你很可能 - 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是什么,只需echo $PATH在 shell 中输入。

于 2012-06-29T22:34:42.687 回答