好吧所以我用.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:错误的解释器:没有这样的文件或目录
关于我做错了什么的任何见解?
在批处理文件中,使用表示注释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.