linux可以写脚本嘛,有达人会写脚本吗?可以帮我写个简单的脚本不?

malalaku 于 2008-10-24 14:45:45发表:

刚开始学习,,,很深奥,,不过还是觉得小河很厚道,,赞一个,符合Linux的开源精神!!

hejie_1207 于 2008-10-24 14:02:21发表:

呵呵,多谢夸奖!我不懂的也很多,大家互相学习吧。:0wmjh(1

wufaqian 于 2008-10-24 13:53:21发表:

小河 真是好同志啊 讲的很好~~~热心人 代表楼主谢谢你

hejie_1207 于 2008-10-24 12:55:58发表:

引用:

原帖由 sydnash 于 2008-10-24 11:46 发表 back.gif

date=$( ls -l $file | tail -1 | awk '{print $6}' )

刚学shell脚本 这句不是很明白

能讲解下不 谢谢

这条语句运用了“命令替换”。对 Bash(Linux 的默认 Shell)而言,所谓命令替换,就是指系统(即 Shell)首先执行 $() 符号里面的命令,并使用该命令的执行结果替换该命令。在本例中,就是用命令 ls -l $file | tail -1 | awk '{print $6}' 的执行结果来替换该命令,最终把该命令的执行结果赋给 date 变量。

至于 $() 符号内的命令本身,由于 ls 和 tail 是常用命令,所以我只讲一下 awk。在此处,awk '{print $6}' 的作用是把一组字符串中的第 6 个词截取出来。

再看一个例子:

$echo This is a test

This is a test

$echo This is a test | awk '{print $4}'

test

我想讲到这里,大家应该就明白了吧。最后,假设在当前目录下只有一个文件 Filemove,我在下面给出该命令的分解执行情况:

$ls -l Filemove

-rwxrw-r-- 1 He He 281 2008-10-22 21:58 Filemove

$ls -l Filemove | tail -1

-rwxrw-r-- 1 He He 281 2008-10-22 21:58 Filemove

$ls -l Filemove | tail -1 | awk '{print $6}'

2008-10-22

$date=$( ls -l Filemove | tail -1 | awk '{print $6}' )

$echo $date

2008-10-22

值得注意的是,不同的系统上面 ls -l 命令的输出格式并不一定和我这里列举的一样,所以在使用该脚本前,须先检查一下你的系统的 ls -l 命令的输出格式,如果必要的话请对该语句进行相应的修改。另外,我刚刚发现该语句中的 | tail -1 似乎是多余的,可以将其去掉。

[本帖最后由 hejie_1207 于 2008-10-24 13:04 编辑]

sydnash 于 2008-10-24 11:46:15发表:

date=$( ls -l $file | tail -1 | awk '{print $6}' )

刚学shell脚本 这句不是很明白

能讲解下不 谢谢

kofeewoo 于 2008-10-24 11:34:04发表:

谢谢各位了

不是我不有偿,我实在是新手,也没有分值给你们呀,不好意思呀!

奶茶dsk 于 2008-10-23 10:39:57发表:

支持楼上。

hejie_1207 于 2008-10-22 21:41:04发表:

#!/bin/bash

ORIGDIR="/var/UploadFiles"

TARGDIR="/var/ClassifiedFiles"

filelist=$( ls $ORIGDIR/* )

for file in $filelist

do

date=$( ls -l $file | tail -1 | awk '{print $6}' )

if [ ! -e $TARGDIR/$date ]

then

mkdir $TARGDIR/$date

fi

mv $file $TARGDIR/$date

done

使用说明:

1. 变量 ORIGDIR 是上传目录,所有上传的文件都必须放在这个目录下,且该目录不能有子目录。变量 TARGDIR 是分类目录所在的目录,所有分类好的目录和文件都是该目录的子目录。

2. 每一个文件都按其修改日期(如果此文件在上传后未被修改的话,也应该就是其上传日期)放在以其修改日期命名的目录下。例如:位于 $ORIGDIR 目录下修改日期为 2008-09-26 日的文件就被放在 $TARGDIR/2008-09-26 目录下。

附:由于你对脚本的功能不是描述的很详细,所以我只是给你提供了一个简单的框架。如果要实现更复杂的功能,你自己在这个基础上修改。

[本帖最后由 hejie_1207 于 2008-10-22 21:50 编辑]

xtvnet 于 2008-10-22 18:23:30发表:

要是有尝可能会有人吧,呵呵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值