0

好吧,所以我不太擅长 .sh 和 .bat 脚本,但我需要将 .bat 文件翻译成 .sh 并希望我能在这里得到一些帮助。

文件名为 booyaka.sh

#!/bin/sh
:START
REM what to put below:
REM perl m2auto.pl user pass wait chartype "Lord Stealer"
REM wait = 0.0 for most
REM chartype: 1 = agimage, 2 = fighter, 3 = mage, 4 = Pure Fighter
REM stealer must have full name
perl m3.pl user password 0.0 1 "Stealer"
perl -e sleep(2)
goto START

这就是我的脚本目前的样子,但由于某种原因,当我在终端中尝试 ./booyaka.sh 时,它返回以下内容:bash: ./booyaka.sh: No such file or directory

如果我在存储文件的目录中导航并尝试从那里执行它会返回:bash: ./booyaka.sh: /bin/sh^M: bad interpreter: No such file or directory

关于我做错了什么的任何见解?

4

1 回答 1

5

注释

在批处理文件中,注释使用REM. 在 Bash 中,它们用 表示#

# This is a comment!

循环

您的批处理文件使用标签和GOTO. Bash 有更多结构化的循环。在您的情况下,您可能需要一个while循环:

while true; do
    # stuff
done

简单的命令

在批处理文件中,您只需编写命令。在 Bash 中也是如此。你可以保持你的perl线条不变。

行尾

批处理文件使用 DOS 行结尾 ( CRLF)。据我所知,Bash 并不真正关心,但对于第一行(对 Bash 的注释),操作系统会关心。您的第一行必须以 UNIX 风格结尾,并带有 aLF和 no CR

于 2013-10-28T01:28:12.533 回答