我想从Linux中程序的输出未运行时输出(工作)命令,我把它变成sh文件:的Linux:在.SH脚本
wine Blockland.exe ptlaaxobimwroe -dedicated -port 30100 > consoleLog.txt
它执行该程序,但创建了一个空白文件。 此命令在直接在终端窗口中执行时始终有效。那么为什么不在.sh脚本中将输出打印到文件中呢?
我想从Linux中程序的输出未运行时输出(工作)命令,我把它变成sh文件:的Linux:在.SH脚本
wine Blockland.exe ptlaaxobimwroe -dedicated -port 30100 > consoleLog.txt
它执行该程序,但创建了一个空白文件。 此命令在直接在终端窗口中执行时始终有效。那么为什么不在.sh脚本中将输出打印到文件中呢?
可能是因为它将其输出打印到stderr
流而不是stdout
。尝试将2>&1
附加到命令末尾(在consoleLog.txt之后),或者仅使用&>
而不是>
。
重定向以exec标准输出:
#!/bin/sh
#Example script
exec > consoleLog.txt
wine Blockland.exe ptlaaxobimwroe -dedicated -port 30100
这将创建一个文本编辑器无法打开的空白文件。 – hammereditor
您正在运行一个DOS控制台应用程序,这并不一定写到标准输出或标准错误,但它写入“控制台”。捕捉“控制台”输出几乎是不可能的。我见过的唯一能够捕获控制台输出的工具是Don Libes的“期望”,而且这种工具可以做各种各样的黑客攻击。 –
或尝试在'脚本'会话中执行。 – tripleee