web-dev-qa-db-ja.com

Zipコマンドのファイル名にbash変数を取得する

Bashスクリプトで、変数を使用して特定の名前のzipファイルを作成するにはどうすればよいですか?たとえば、私は次のようなことをしたいと思います:

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

理想的にはfoo.1.7.3.Zipというファイルになります

私は2つの問題を抱えているようです:

  1. zipコマンドは$VERSION_STRINGをnullまたは空のように処理しています
  2. fooの後の.もそれを台無しにしているようです
26
Jared Henderson

ここでは、bash 4.1.5を使用して正常に動作します。

#!/bin/bash

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

実際のコマンドを実行するのではなく、見るためにechoを追加しました。スクリプトが印刷されます

Zip -r foo foo.1.7.3.Zip
16
NPE

${VERSION_STRING}を使用して、変数名を明確にラップできます。

28
cyber-monk

Zip入力を逆方向に持っていると思います。私にとって次のコマンド:

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

有効なZipファイルを作成します。あなたのコマンドは(少なくとも私のバージョンのZipでは)そうではありません。

11
Andy