#!/bin/bash DB=database_name DBUSER=username FILENAME=$DB_$(date +%s).sql
我正在尝试在FILENAMEvariables赋值中重用DB的值,但它不会让我用这种方式来replace。 我只是得到文件名的时间戳。
是否有可能实现我想要的,如果是的话,语法是什么?
谢谢。
问题是, bash不知道你的意思是$DB而不是$DB_ (这是一个完全有效的variables名)。
最好的select是在名称周围使用大括号来明确variables的名称:
FILENAME=${DB}_$(date %s).sql
这样可以节省转义其他字符的麻烦,这些字符不能被解释为variables名的一部分。
或者,使用大括号来隔离您的variables。 我认为这比在那里引用报价要清楚一些。
FILENAME=${DB}_$(date +%s).sql
将下划线用双引号括起来(或者用更强的单引号):
#!/bin/bash DB=database_name DBUSER=username FILENAME=$DB"_"$(date +%s).sql