我遇到一个相当奇怪的问题,一个echo命令在脚本中导致。 它应该是非常基本的东西,但仍然有一些“关闭”。
假设我有这个脚本:
#!/bin/bash
# SERVERPID='cat lite_server_pid.txt'
# kill -9 $SERVERPID
nohup java -Xmx3G -Xms2G -jar tekkit_lite_065.jar nogui > output.txt &
echo $! > lite_server_pid.txt
是的,这会启动我自己的小Minecraft / Tekkit-Server。 ; - )
问题是,创建的文件(由于某种原因)命名为
lite_server_pid.txt?
和是,这包括“?”!在shell中执行相同的命令,没有文件?是正确创建的!此外,文件的内容是所需的processID。 还是,?文件名后面是一个主要问题...... 我做错了什么?
答案 0 :(得分:1)
检查文件中的DOS行结尾。我怀疑?
实际上是你的终端尝试显示回车符(\r
)。由于bash
需要UNIX样式的换行符,因此DOS换行符(\r\n
)的回车部分被视为文件名的合法字符。
通过dos2unix
运行您的脚本。