首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash shell脚本101 -在脚本中循环

bash shell脚本101 -在脚本中循环
EN

Stack Overflow用户
提问于 2013-11-12 14:43:31
回答 2查看 136关注 0票数 0

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

a=03

b=15

tar文件/dev/tapedrive file_03 file_04 file_05 .........file_15 >/文本文件/备份文件_03-15.txt

下面是我想出来的脚本,

代码语言:javascript
复制
#! /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’,以确保我获得正确的最终命令行。我收到错误

代码语言:javascript
复制
jag5v1.sh: line 9: syntax error near unexpected token `$tt=" "'
jag5v1.sh: line 9: `$tt=" ";'

我将非常感谢您的任何意见。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-11-12 14:57:16

看起来你需要说的就是:

代码语言:javascript
复制
a=03
b=15
echo tar -cvf /dev/tapedrive $(seq -f 'file_%02g' $a $b) > /text_files/backup_file_$a-$b.txt
票数 2
EN

Stack Overflow用户

发布于 2013-11-12 15:04:27

我已经更正了你的代码。试试这个-

代码语言:javascript
复制
#! /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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19922597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档