Подтвердить что ты не робот

Получение переменной bash в filename для zip-команды

В bash script, как я могу использовать переменную для создания специально названного zipped файла? Например, я хотел бы сделать что-то вроде:

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

В идеале я получаю файл с именем foo.1.7.3.zip

Кажется, у меня две проблемы:

  • команда zip обрабатывает $VERSION_STRING как null или empty
  • . после foo также, кажется, удаляет его
4b9b3361

Ответ 1

Ниже показано, как работает bash 4.1.5:

#!/bin/bash

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

Я добавил echo, чтобы увидеть фактическую команду, а не запустить ее. script выводит

zip -r foo foo.1.7.3.zip

Ответ 2

вы можете использовать ${VERSION_STRING}, чтобы четко обернуть имя переменной

Ответ 3

Я думаю, что у вас есть ваши почтовые входы назад. Для меня следующая команда:

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

создает действительный zip файл. У вашей команды нет (по крайней мере, моей версии zip).