Jared Henderson
Jared Henderson

Reputation: 1319

getting bash variable into filename for zip command

In a bash script, how do I use a variable to create a specifically named zipped file? For example, I would like to do something like:

VERSION_STRING='1.7.3'
zip -r foo.$VERSION_STRING foo

Where I ideally end up with a file called foo.1.7.3.zip

It seems like I'm having 2 problems:

  1. the zip command is treating $VERSION_STRING like it's null or empty
  2. the . after foo also seems to be mucking it up

Upvotes: 28

Views: 53044

Answers (3)

Andy
Andy

Reputation: 674

I think you have your zip inputs backwards. For me the following command:

zip -r foo.${VERSION_STRING}.zip foo

creates a valid zip file. Your command does not (at least with my version of zip).

Upvotes: 11

cyber-monk
cyber-monk

Reputation: 5570

you can use ${VERSION_STRING} to clearly wrap your variable name

Upvotes: 29

NPE
NPE

Reputation: 500893

The following works fine here using bash 4.1.5:

#!/bin/bash

VERSION_STRING='1.7.3'
echo zip -r foo foo.$VERSION_STRING.zip

I've added the echo to see the actual command rather than run it. The script prints out

zip -r foo foo.1.7.3.zip

Upvotes: 17

Related Questions