日常生活的交流与学习

首页 新随笔 联系 管理

获取最新的shell脚本并执行

#!/bin/bash

# 获取当前目录
current_dir=$(pwd)

# 获取当前脚本的绝对路径
script_path=$(readlink -f "$0")

# 使用find查找以temp开头且以.sh结尾的文件,并按修改时间排序
latest_file=$(find "$current_dir" -maxdepth 1 -name "*.sh" -print0 |
    xargs -0 ls -t1 | head -n 1)

# 输出找到的文件
if [ -n "$latest_file" ]; then
    if [[ "$script_path" != "$latest_file" ]]; then
        # 提取文件名
        file_name=$(basename "$latest_file")

        # 构建新的.md文件名
        md_file_name="${file_name%.sh}zout.md"
        echo "$md_file_name"

        # 构建完整路径的新文件
        new_md_file_path="$current_dir/out/$md_file_name"
        # 创建所需的目录
        mkdir -p "$(dirname "$new_md_file_path")"
        # 获取当前时间并格式化为 "yyyyMMdd_HHmmss" 格式
        formatted_time=$(date +%Y%m%d_%H%M%S)
        # 输出格式化后的时间
        printf "\n" >>$new_md_file_path
        echo "# $formatted_time" >>$new_md_file_path
        printf "\n" >>$new_md_file_path
        # 调用run_sh.sh
        echo "\`\`\`json" >>$new_md_file_path
        $latest_file > temp_out.txt
        # 读取并格式化 JSON 数据
        formatted_json=$(cat temp_out.txt | jq '.')
        # 输出格式化的 JSON 数据
        echo "$formatted_json" >>$new_md_file_path
        # cat temp_out.txt >>$new_md_file_path
        # 清理临时文件
        rm temp_out.txt
        printf "\n" >>$new_md_file_path
        echo "\`\`\`" >>$new_md_file_path
        code $new_md_file_path
    else
        :
    fi
else
    echo "No *.sh files found."
fi

# 在 run_sh.sh 完成后打印一些信息
echo "===================================================================="
posted on 2024-08-18 10:32  lazycookie  阅读(40)  评论(0编辑  收藏  举报