Shell脚本字符串拼接问题:日期无法正常嵌入文件名
问题原因及解决方法
两个核心错误:
- DATE变量赋值方式错误
你当前的DATE= date +"%d.%m.%Y"写法会直接执行date命令并打印结果,而DATE变量实际是空值。正确的命令替换写法需要用$()把命令包裹起来:
DATE=$(date +"%d.%m.%Y")
- 变量拼接时的边界歧义
echo "$FILE_PREFIX$DATE_$FILE_EXTENSION"里的$DATE_会被Bash解析为名为DATE_的变量(你未定义过,所以为空),必须用${DATE}明确变量的边界,避免和后面的下划线混淆。
修正后的完整脚本
#!/bin/bash DATE=$(date +"%d.%m.%Y") FILE_PREFIX="V_Articles_" FILE_EXTENSION=".json" # 正确的拼接方式 echo "$FILE_PREFIX${DATE}$FILE_EXTENSION"
预期输出
V_Articles_01.10.2023.json
内容的提问来源于stack exchange,提问作者user1107888
相关产品推荐
相关产品推荐

