Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash中的文件名中插入变量?_Bash_Macos_Shell_Scripting - Fatal编程技术网

如何在bash中的文件名中插入变量?

如何在bash中的文件名中插入变量?,bash,macos,shell,scripting,Bash,Macos,Shell,Scripting,我目前正在学习bash,并学习了一些基础知识 现在我需要一个文件的变量名(例如“Backup_2020-04-24”),但它不起作用 我还应该提到,我使用的是MacOS设备 它看起来像什么: variable=“测试” tar-zcvf项目${variable}.gzip测试文件夹 应为:名为projects\u test的gzip文件位于名为testfolder的文件夹中 但是,gzip是在测试文件夹中创建的。。名称为“项目” 有谁知道为什么会这样,并能向我解释一下吗?回显时,变量不是空的 如

我目前正在学习bash,并学习了一些基础知识

现在我需要一个文件的变量名(例如“Backup_2020-04-24”),但它不起作用

我还应该提到,我使用的是MacOS设备

它看起来像什么:

variable=“测试”
tar-zcvf项目${variable}.gzip测试文件夹

应为:名为projects\u test的gzip文件位于名为testfolder的文件夹中

但是,gzip是在测试文件夹中创建的。。名称为“项目”

有谁知道为什么会这样,并能向我解释一下吗?回显时,变量不是空的


如果这篇文章格式不好,请原谅,这是我在这里的第一篇文章。请毫不犹豫地告诉我下次做得更好的地方可能是
variable=“test”
。是否改为尝试
variable=test
?(这应该是一个评论,但我还没有足够的代表发表评论)

或者,如果希望
变量
采用的值是需要计算的值:

foo=$(日期--date='@2147483647')
回声$foo
#>周一1月18日19:14:07太平洋标准时间2038

感谢您的快速响应!这确实对一个简单字符串的变量有所帮助,但我的实际变量是这样的,只要我删除“=”后面的空格,它就会说找不到命令。当我回显它时,我确实得到了日期,但是它没有显示在文件名中。:date=date-v-1d+%Y%m%d它基本上返回昨天的日期所以设置
date=$(date-v-1d…
的想法是变量名、等号和变量值之间不能有空格。你创造了我的一天!谢谢!你能解释一下为什么会这样吗?我在哪里可以读到更多关于这方面的信息?我承认我对“$()”部分有点困惑。老实说,我对bash的了解还不够,但是<代码>$()启动一个我相信的新shell,并运行任何命令,返回该命令的stdout。因此,当您拥有
foo=$(…)
时,它将启动一个新的shell,运行该内容,然后将
foo
设置为该内容返回的任何内容。