我目前在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?身份启动。导致这个问题的原因是什么,我该如何修复它?
发布于 2012-07-15 10:00:38
在某些代码行的末尾有额外的carriage returns (那些有趣的^M)。Windows使用回车后跟换行符(CRLF)作为其行尾,但Linux只使用普通的换行符,因此任何无关的回车有时都会被解释为常规字符,特别是在您的情况下。
要解决此问题,请手动删除脚本中的回车,或者使用诸如dos2unix(1)之类的程序转换行尾(许多其他程序也可以这样做)。
https://stackoverflow.com/questions/11488803
复制相似问题