Я пытаюсь выполнить скрипт, который проверяет файлы .tar.gz. Это часть сценария:В чем разница между этими двумя синтаксисами?
def tar
tar_file = %x(ls -t *.tar.gz | head -1)
if tar_file.empty?
critical "No tar.gz found"
end
tar_file.chomp
command = "gunzip -c backup.tar.gz | tar t > /dev/null"
system(command)
end
Это работает отлично, но я не знаю, мое имя резервного копирования, поэтому мне нужно, чтобы заменить его переменной. В этом случае это моя переменная tar_file
. Так это дает мне:
command = "gunzip -C#{tar_file} | tar t > /dev/null"
Но когда я исполню это, у меня есть вывод команды tar
, он не делает reddirection в/DEV/нуль.
Знаете ли вы, почему это так?
Имеет ли файл пробелы? Строка выглядит хорошо для меня, когда я пытаюсь. Оберните '# {tar_file}' в одинарных кавычках или с двойными кавычками. – casraf
Нет, это не так, имя файла - backup.tar.gz. И одиночные или экранированные двойные кавычки не работают. –
Когда вы выводите значение 'command', что вы видите? – casraf