当前位置:  技术问答>linux和unix

一个简单的shell编程题

    来源: 互联网  发布时间:2016-07-10

    本文导语:  编写一个shell脚本程序,可以实现对备份文件进行更名:要求每次最新备份的数据存放到backupfile文本文件中,之前备份的文件更名为backupfile1,再之前备份的文件更名为backupfile2,依次类推backupfilen,不对n的数量做限...

编写一个shell脚本程序,可以实现对备份文件进行更名:要求每次最新备份的数据存放到backupfile文本文件中,之前备份的文件更名为backupfile1,再之前备份的文件更名为backupfile2,依次类推backupfilen,不对n的数量做限制。
我编写了如下代码:
#!/bin/bash
echo "Input the file that you want to backup please"
read file
ls|grep -c backupfile=n
echo $n
   for (( i=$(($n-1));i!=0;i-- ))
   do
   mv "backupfile${i}" "backupfile{${i}+1}"
   done
   echo $n
   if [ n > 0 ]
   then
   mv backupfile backfile1
   cp file backupfile
   else
   cp file backupfile
   fi
exit 0
为什么不正确?请高手来指点一下


|

set -x
echo "Input the file that you want to backup please" 
read file
m=0
m=`ls|grep -c backupfile`
echo $m 

n=$m
while [ $n -gt 1 ] 
do
nn=`expr $n - 1`
mv "backupfile${nn}" "backupfile${n}"
n=`expr $n - 1`
done

echo $m 
if [ $m -gt 0 ]
then
mv backupfile backupfile1  
cp $file backupfile
else
cp $file backupfile
fi

exit 0

已经可以运行的脚本,不要随意删除空格

另外,不知道你为什么要保留原文件,以及备份文件名为什么不弄成  原文件名+backupfile+n  ,这样a.txt和b.txt的备份文件名都是,backupfile+n。

另外,原脚本
ls|grep -c backupfile=n   不对
for (( i=$(($n-1));i!=0;i-- ))   shell中的for循环不能这么写,不要和C的混肴,我也不知道怎么用shell中的for实现这个功能,只能改成while
 if [ n > 0 ]  > 不对,-gt



|
ls|grep -c backupfile=n 

你这是干什么?是不是要统计有多少个备份文件?
好像应该这样写
n=`ls|grep -c backupfile`

|

这个是对的哦 把文件的数目赋给n

|


nod
楼主变量要放在左边。

    
 
 

您可能感兴趣的文章:

  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • Linux下的编程指的就是Shell编程吗?
  • 那里有《shell编程》和关于curses编程的教程可以下载,请帮忙?
  • C编程与shell编程有什么区别,两者有没有从属关系?
  • Linux C编程一站式学习,高级shell Bash脚本编程指南,
  • shell 编程 执行shell新建多个终端 并执行程序
  • Linux命令、编辑器与Shell编程 和 UNIX SHELL范例精解(第4版) 区别大么?
  • Shell编程的,可以在shell中访问多行的属性吗?如:
  • 刚学Shell编程,问个关于Shell中if语句的问题
  • 如何学UNIX的SHELL编程
  • 请推荐基本shell编程书籍
  • 请大家推荐一本shell编程方面的书
  • 给我推荐点shell编程的学习资料。
  • 谁有linux shell编程方面比较好的语法资料哦?
  • 那里有《shell编程》和关于curses编程的教程可以下载,请帮忙? iis7站长之家
  • 学好SHELL编程能从事什么职业?
  • 关于shell脚本编程
  • 关于shell编程的小问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • 如何在一台机器上的shell中执行另外一台机器上的shell
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键
  • 请教 一个shell问题 如何通过shell获得一个日志文件中的增量部分


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3