Bash:Random"&引用;附加到已启动的屏幕';姓名

Bash:Random"&引用;附加到已启动的屏幕';姓名,bash,Bash,我目前在bash中有一个case语句,看起来是这样的: restart) if kill -0 PID; then while kill -0 PID; do //exit script done screen -dmS screen1^M screen -S screen1 -p 0 -X stuff '//code here'^M else //other stuff

我目前在bash中有一个case语句,看起来是这样的:

restart)
    if kill -0 PID; then
        while kill -0 PID; do
            //exit script
        done
        screen -dmS screen1^M
        screen -S screen1 -p 0 -X stuff '//code here'^M
    else
        //other stuff
    fi
    ;;
当我使用这个脚本时,屏幕将以
screen1
的形式启动,而不是以
screen1?
的形式启动。这是什么原因,我该如何解决它呢?

您在一些行的末尾有额外的(那些有趣的
^M
s)。Windows使用后跟换行符(CRLF)的回车符作为其行结束符,但Linux只使用普通换行符,因此任何无关的回车符有时会被解释为常规字符,特别是在您的情况下

若要解决此问题,请手动从脚本中删除回车符,或使用诸如之类的程序转换行尾(许多其他程序也可以这样做)