![连接两个字符串变量时缺少部分字符串](https://linux22.com/image/1697392/%E8%BF%9E%E6%8E%A5%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8F%98%E9%87%8F%E6%97%B6%E7%BC%BA%E5%B0%91%E9%83%A8%E5%88%86%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我在 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"