将bash变量转换为zip命令的文件名

Jar*_*son 26 bash zip

在bash脚本中,如何使用变量创建特定名称的压缩文件?例如,我想做类似的事情:

VERSION_STRING='1.7.3'
zip -r foo.$VERSION_STRING foo
Run Code Online (Sandbox Code Playgroud)

理想情况下我最终得到一个名为的文件 foo.1.7.3.zip

好像我有两个问题:

  1. zip命令$VERSION_STRING就像处理null或空
  2. .foo似乎也摆弄起来

cyb*_*onk 28

您可以使用它${VERSION_STRING}来清楚地包装您的变量名称


NPE*_*NPE 16

以下使用bash 4.1.5正常工作:

#!/bin/bash

VERSION_STRING='1.7.3'
echo zip -r foo foo.$VERSION_STRING.zip
Run Code Online (Sandbox Code Playgroud)

我添加了echo以查看实际命令而不是运行它.打印出来的脚本

zip -r foo foo.1.7.3.zip
Run Code Online (Sandbox Code Playgroud)


And*_*ndy 11

我认为你的邮编输入是向后的.对我来说,以下命令:

zip -r foo.${VERSION_STRING}.zip foo
Run Code Online (Sandbox Code Playgroud)

创建一个有效的zip文件.你的命令没有(至少我的zip版本).