使用另一个变量作为一部分的 Bash 变量赋值

Luk*_*keR 6 scripting bash

我有以下摘录自用于备份数据库的 bash 脚本

#!/bin/bash
DB=database_name
DBUSER=username
FILENAME=$DB_$(date +%s).sql
Run Code Online (Sandbox Code Playgroud)

我想重新使用的值DB的范围内FILENAME变量赋值,但它不会让我使用替代这种方式。我只是得到文件名的时间戳。

是否有可能实现我想要的,如果是这样,语法是什么?

谢谢。

Tor*_*ian 8

问题是bash不知道你的意思是$DB而不是$DB_(这是一个完全有效的变量名称)。

最好的选择是在变量名称周围使用大括号明确表示变量名称:

FILENAME=${DB}_$(date %s).sql
Run Code Online (Sandbox Code Playgroud)

这可以避免转义其他不被解释为变量名一部分的字符的麻烦。