请蝙蝠翻译

0 linux bash shell batch-file

好吧所以我用.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
Run Code Online (Sandbox Code Playgroud)

这是我的脚本当前的样子,但出于某种原因,当我在终端尝试./booyaka.sh时,它返回以下内容:bash:./ booyaka.sh:没有这样的文件或目录

如果我在存储文件的目录中导航并尝试从那里执行它返回:bash:./ booyaka.sh:/ bin/sh ^ M:错误的解释器:没有这样的文件或目录

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

ick*_*fay 5

评论

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

# This is a comment!
Run Code Online (Sandbox Code Playgroud)

循环

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

while true; do
    # stuff
done
Run Code Online (Sandbox Code Playgroud)

简单的命令

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

行结尾

批处理文件使用DOS行结尾(CRLF).据我所知,Bash并不在乎,但对于第一行(对Bash的评论),操作系统确实如此.您的第一行必须以UNIX样式终止,LF而不是CR.