如何在C#

时间:2018-04-06 20:06:33

标签: c# linux monodevelop tail

我使用此命令跟踪ubuntu上文件的更改:

tail -f /var/log/auth.log

随着文件的更改,我看到控制台上打印的输出。非常好。

因此我的bash脚本看起来像这样:

#!/bin/bash

tail -fn0 /var/log/auth.log | \
while read line ; do
    x=$(echo "$line" | grep -o "sftp-server")

    # if line contains sftp-server then:
    if [ "$x" == "sftp-server" ]; then
        # ... do work with line <------------------
    fi

done

我需要在mono(c#)中运行这个bash脚本。 所以我的问题是如何用c#做到这一点?如果我在c#bellow中执行某些代码,它会做同样的事情吗?

var fileStream = File.OpenRead("/var/log/auth.log");

while (true)
{
        Thread.Sleep(500);

        byte[] buffer = new byte[1024];

        StreamReader reader = new StreamReader(fileStream);

        if (fileStream.CanRead)
        {
            var line = reader.ReadLine();

            if (string.IsNullOrEmpty(line) == false)
            {
                    // do work with line.... <-----------------------
            }
        }                
}

0 个答案:

没有答案