我在 Ubuntu 上使用 Bash 版本 5.0.17。
我正在尝试将日期和时间(基于文件的修改日期)附加到文件名以进行备份。我通过执行以下操作创建要附加的子字符串:(我在这里只显示文字字符串,而不是对文件名进行“统计”的代码,因为它在这里无关紧要。)
iDate='2023-10-14'
iTime='1510'
通过上述操作,如果我使用以下命令重新分配 iDate 的值:
iDate="$iDate_$iTime"
...它得出的结果是“1510”,而不是“2023-10-14_1510”
为什么会发生这种情况?(我后来将其更改为 iDate="$iDate"_"$iTime",它给出了正确的字符串)有人能解释我做错了什么吗?
答案1
$iDate_
是有效的变量名。使用某些字符将字符与变量名分隔开:
iDate="$iDate"_"$iTime"
iDate="$iDate\_$iTime"
iDate="${iDate}_$iTime"
此外,如果您只是附加一个值,则可以+=
在 bash 中使用运算符:
iDate+="_$iTime"