我已经读过其他线程在这里input链接描述讨论L / UNIX的转换,但没有一个令人满意的。 我在编写我自己的脚本时也尝试了很多黑客types的方法。
我有以下example.bat脚本是代表我想要在UNIX上运行的脚本的types。
码:
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中的程序。 我试图把它们放在一个系统()中,但是没有奏效。 有人可以帮帮我吗? 谢谢!
假设您的$PATH
有一个名为program.exe
的可执行文件(您很可能 – Unix可执行文件不必以.exe
结尾,但没有说不能),您粘贴的代码是一个有效的shell脚本。 如果将其保存在名为example.bat
的文件中,则可以通过键入来运行它
sh example.bat
进入shell提示符。
当然,Unix shell脚本通常使用后缀.sh
– 或者根本没有后缀 – 而不是.bat
。 另外,如果您希望脚本可以直接执行,只需键入
example.sh
而不是sh example.sh
,你需要做三件事情:
用“shebang”行开始脚本:以#!
开始的行#!
以及要用来运行它的shell解释器的完整路径(例如,基本Bourne shell的/bin/sh
),如下所示:
#!/bin/sh echo "This is a shell script." # ... more commands here ...
使用chmod
命令将脚本标记为可执行文件,例如
chmod a+rx example.sh
把你的脚本放在你的$PATH
某处。 在Unix上,默认路径通常不会包含当前目录.
,所以只能通过输入名字来执行当前目录下的程序。 但是,您可以通过指定显式路径来运行它们,例如
./example.sh # runs example.sh from the current directory
要找出你的$PATH
是什么,只需在shell中键入echo $PATH
。