在mongo shell窗口中,我想定期运行一个脚本,显示数据库活动的各种统计信息,然后显示统计信息,我想清除屏幕。 mongo shell中有一个“cls”命令,但是我无法在javascript中执行它。
function stats () {
while(1) {
cls;
print("display stats");
sleep(5000);
}}
无法识别带有“cls”的行。
感谢您的任何建议, 加里
答案 0 :(得分:2)
一个选项是用空行填充屏幕:
function clearIt () { for(var i = 0; i < 100; i++) { print() } }
clearIt()
但是,感谢@NeilLunn指出它似乎有一个解决方案:
function clearIt () { run('clear') }
clearIt()
执行系统命令将清除终端屏幕。我不知道它有多可靠(参见man clear
- &gt;取决于它是否可以弄清楚如何清除屏幕),这仅适用于POSIX系统。在Windows上,您必须将clear
替换为cls
:
function clearIt () { run('cls') }
其他:
我查了mongo shell的源代码(src / mongo / shell / linenoise.cpp)。以下是清除屏幕的方式:
void linenoiseClearScreen( void ) {
#ifdef _WIN32
COORD coord = {0, 0};
CONSOLE_SCREEN_BUFFER_INFO inf;
HANDLE screenHandle = GetStdHandle( STD_OUTPUT_HANDLE );
GetConsoleScreenBufferInfo( screenHandle, &inf );
SetConsoleCursorPosition( screenHandle, coord );
DWORD count;
FillConsoleOutputCharacterA( screenHandle, ' ', inf.dwSize.X * inf.dwSize.Y, coord, &count );
#else
if ( write( 1, "\x1b[H\x1b[2J", 7 ) <= 0 ) return;
#endif
}
如果您想通过使用字符填充屏幕来尝试实现自己的屏幕清理功能。
答案 1 :(得分:0)
> help admin
ls([path]) list files
pwd() returns current directory
listFiles([path]) returns file list
hostname() returns name of this host
cat(fname) returns contents of text file as a string
removeFile(f) delete a file or directory
load(jsfilename) load and execute a .js file
run(program[, args...]) spawn a program and wait for its completion
runProgram(program[, args...]) same as run(), above
sleep(m) sleep m milliseconds
getMemInfo() diagnostic
这会显示run
和runProgram
命令以及其他一些帮助程序。 program
参数是一个字符串。