2013-11-12 4 views
0

Я пытаюсь создать скрипт, который автоматизирует одну строку команды, которая используется для архивирования выбранных файлов на ленту и создания текстового файла с архивированными файлами. а и б входы и в примере, приведенном ниже, и я определяю их как 03 и 15.bash shell script 101 - loop in a script

а = 03

б = 15

деготь -cvf/DEV/tapedrive file_03 file_04 file_05 ... ...... file_15> /text_files/backup_file_03-15.txt

сценарий, я придумал ниже,

#! /bin/bash 

a=03 
b=15 

for ((c=$a; c<=$b; c++)) 
$tt=" "; 
do 
    if[ ! $c $a ] 
    then 
     $c="0$c" 
    fi 
    $tt .= " file_".$c."" 
end  

echo tar -cvf /dev/tapedrive $tt > /text_files/backup_file_$a-$b.txt 

done 

это «эхо» сейчас вместо того, чтобы «делать», чтобы убедиться, Я получаю правильный окончательный комманд d. Я получаю ошибку

jag5v1.sh: line 9: syntax error near unexpected token `$tt=" "' 
jag5v1.sh: line 9: `$tt=" ";' 

Я был бы признателен за любой вклад. Благодаря!

ответ

2

Кажется, что все, что нужно сказать:

a=03 
b=15 
echo tar -cvf /dev/tapedrive $(seq -f 'file_%02g' $a $b) > /text_files/backup_file_$a-$b.txt 
+0

Это более элегантно. – Hussain

1

я исправил свой код. Попробуйте это -

#! /bin/bash 
a=3 
b=15 
tt=' '; 

for c in $(seq $a $b); 
do 
    if [ $c -le 9 ] 
    then 
    c="0"$c 
    fi 
    tt=$tt" file_"$c 
done 
echo tar -cvf /dev/tapedrive $tt > /text_files/backup_file_0$a-$b.txt