连接两个字符串变量时缺少部分字符串

连接两个字符串变量时缺少部分字符串

我在 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"

相关内容