0

我正在尝试创建一个脚本,该脚本自动执行一行命令,该命令用于将选定的文件存档到磁带并使用存档文件创建一个文本文件。a 和 b 是输入,在下面的示例中,我将它们定义为 03 和 15。

a=03

b=15

tar -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

现在是“echo”而不是“do”,以确保我得到正确的最终命令行。我收到错误

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

我会很感激任何意见。谢谢!

4

2 回答 2

2

看来你只需要说:

a=03
b=15
echo tar -cvf /dev/tapedrive $(seq -f 'file_%02g' $a $b) > /text_files/backup_file_$a-$b.txt
于 2013-11-12T06:57:15.710 回答
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
于 2013-11-12T07:04:27.313 回答