MST
星途 面试题库

面试题:Bash复杂场景下命令替换与变量替换

假设你有一个Bash脚本,脚本接收一个参数 $1,该参数为一个文件名。你需要使用命令替换获取文件的修改时间,并将其格式化为 'YYYY - MM - DD HH:MM:SS' 的形式存储在变量 $MOD_TIME 中,同时利用变量替换,将该文件重命名为原文件名加上修改时间(格式为:原文件名_YYYY - MM - DD_HH - MM - SS),写出完整的Bash脚本实现。
37.0万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 检查是否提供了文件名参数
if [ $# -ne 1 ]; then
    echo "Usage: $0 <filename>"
    exit 1
fi

filename=$1
# 获取文件修改时间并格式化为指定格式
MOD_TIME=$(stat -c '%Y' "$filename" | xargs -I {} date -d @{} +'%Y-%m-%d %H:%M:%S')
# 新文件名
new_filename="${filename%.*}_${MOD_TIME// :/-}.${filename##*.}"

# 重命名文件
mv "$filename" "$new_filename"

echo "文件已重命名为: $new_filename"