2014-09-28 2 views
-1

Я новичок в сценариях оболочки. Я написал этот следующий сценарий для 2 различных входных файлов:Нужна помощь для скрипта оболочки TAR

#!/bin/sh 
last=`ls [JKT-ABC]*.tar | sed s/.tar//g | sort -g | tail -1` 
if(($last%1==0)) 
then 
    tar -cf `date '+%W%b%d'`.tar [JKT-ABC]*.tar 
fi 

last=`ls [JKT-DEF]*.tar | sed s/.tar//g | sort -g | tail -1` 
if(($last%1==0)) 
then 
    tar -cf `date '+%W%b%d'`.tar [JKT-DEF]*.tar 
fi 

После выполнения этого сценария, вывод один .tar файла с именем: xxSep28. Итак, 2 входа .tar файлов стали одним TAR (xxSep28). Это не то, что я хочу.

Мой вопрос:

  • Как выход/использовать полное имя файла tar в сценарии? (например: xx.Sep28.JKT-ABC)
  • Почему два выходных файла объединены в один из этих сценариев? Как я могу держать их отдельно?
+0

В чем проблема вы пытаетесь решить? Я имею в виду, что вы хотите, чтобы ваш скрипт делал? – 5gon12eder

+0

Я хочу, чтобы выходные файлы tar были такими же, как этот xx.Sep28.JKT-ABC, и упаковывали tar-файлы в 2 файла (потому что в этом скрипте я ввожу 2 разных файла и после запуска файлы всегда объединяются). – Pane

+0

Я боюсь, что до сих пор не понимаю. Код, который вы показываете, не принимает никаких данных и выполняет одну и ту же задачу дважды (возможно, снова перезаписав только что созданный файл tar). То есть, если if-statement был действительным. Не могли бы вы привести пример с «directory before», «script script» и «directory after»? – 5gon12eder

ответ

1

Ваш вопрос очень трудно понять ... ваш сценарий создает архивный файл под названием

<week><month><day>.tar   # 38Sep28.tar today for example 

, а затем сразу же переписывает его с другим дегтя файл с таким же именем и разным содержанием.

Очевидно, что две команды tar записывают в другой файл. Поэтому я хотел бы предложить вам изменить первую tar команду:

tar -cf "$(date '+%W%b%d')JKT-ABC.tar" something 

и второй по

tar -cf "$(date '+%W%b%d')JKT-DEF.tar" something 

Существует еще одна проблема, хотя я до сих пор не понимаю, и это то, что вы имеете в виду

[JKT-ABC]*.tar 

это означает, что файлы, имена которых сделаны только из букв J, K, T до A, B или C с последующим .tar, поэтому он будет соответствовать файлы, называемые (!):

JJ.tar 
CBACBACBCCCCCCCC.tar 

, и я не думаю, что это то, что вы имеете в виду, в частности, так как диапазон T through to A вряд ли ...

Смежные вопросы