将连续电报保存到不同的文件夹中

Save continuous telegram in to different folder

我在保存电报输出时遇到问题。我的问题是,我每分钟都会从服务器获取数据。我的非常简单的代码可以将这些连续数据保存到一个 .txt 文件中。

但我想要的是,将这些数据存储在日常文件夹中。从这段代码中,运行,它会创建当天的文件夹,但会在同一文件夹和同一文件中继续添加第二天的数据。

我的示例代码是:

#!/bin/bash


foldername=$(date +%Y%m%d)
mkdir -p  /home/bash-test/"$foldername"

echolog(){
    if [ $# -eq 0 ]
    then cat - | while read -r message
        do
                echo "$(date -u +"%F %T %Z ; ") $message" | tee -a $MY_LOG
            done
    else
        echo -n "$(date -u +'%F %T %Z') ; " | tee -a $MY_LOG
        echo $* | tee -a $MY_LOG
    fi
}

telnet 197.204.12.253 1001 | echolog > /home/bash-test/"$foldername"/Ppt_$(date +%Y%m%d).txt

哦,我知道了,'echolog' 是你的函数,我还以为是什么应用呢。可以这样简化:

#!/bin/bash

fun(){
    while read data; do
        printf -v folder '%(%Y%m%d)T' -1
        printf -v filenm 'test_%(Y%m%d_%h%s)T.txt' -1
        mkdir -p $folder &> /dev/null
        echo "$data" >> "$folder/$filenm"
    done
}

tail -f file | fun