linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > SHELL >
栏目导栏
资料搜索
热门文章
·csh shell编程入门
·玩转Linux shell命令提示符
·Bourne Shell及shell编程
·Shell 编程实例集锦
·Linux下的shell编程入门
·Shell编程基础
·linux shell 编程基础
·shell基础十二篇
·Linux的Shell编程
·linux Shell编程入门 实例讲解
·Linux主要shell命令详解
·Linux shell 脚本实例一
·深入浅出Shell编程: Shell 变量
·shell命令(一)
·UNIX/LINUX SHELL 正则表达式语
最新文章
·Linux系统中加入自定义Shell为
·Shell学习:关于替换命令-tr-R
·Linux Shell学习:uniq命令使用
·uClinux操作系统下的shell功能
·Shell编程基础:单引号和双引号
·Linux操作系统下Shell语句元字
·Linux系统环境程序设计之路
·Linux Shell中PS命令中的%CPU的
·Linux Shell元字符知识笔记
·压缩命令-vi-认识SHELL-正规表
·Linux系统下Shell命令行快捷键
·谈Linux Shell下的输出重定向
·在Shell中执行vi/cp/mv时自动备
·shell数组介绍
·开启和关闭Shell特性的小技巧
Google
 
新手看招 Linux Shell编程简单一例
[ 作者:  加入时间:2007-04-09 10:30:52  来自:Linux联盟收集整理 ]
引言:本人学shell也有一段时间了,感觉学习shell和其他语言一样就是多练习程序。网上很多初学shell的朋友,一定为了找不到练习的程序而苦恼,我整合一下学习shell过程中遇到的比较基础的练习题,希望能给初学shell的朋友一些启发。(呵呵也许不该叫整合,习惯说这个词了)9kqLinux联盟
  例子没有先后顺序:每个例子可能有多种方法
  1.

在/home/codfei以及它的子目录中查找含有codfei的所有文件

  • 方法一:

[root@localhost Linuxos]# grep -rsn "codfei" /home/9kqLinux联盟
/home/codfei/c/Unix_c/2:1:codfei::::::::::::::::::::::9kqLinux联盟
/home/codfei/c/Unix_c/1:1:codfei::::::::::::::::::::::9kqLinux联盟
Binary file /home/codfei/c/.charset.c.swp matches9kqLinux联盟

  • 方法二:

[root@localhost Unix_c]# find /home/codfei/ -type f | while read i;do grep -n codfei $i && echo $i && echo -----;done9kqLinux联盟
1:codfei::::::::::::::::::::::9kqLinux联盟
/home/codfei/c/Unix_c/29kqLinux联盟
-----9kqLinux联盟
1:codfei::::::::::::::::::::::9kqLinux联盟
/home/codfei/c/Unix_c/19kqLinux联盟
-----9kqLinux联盟
Binary file /home/codfei/c/.charset.c.swp matches9kqLinux联盟
/home/codfei/c/.charset.c.swp9kqLinux联盟
-----9kqLinux联盟

  2.
设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限为 rwxr-xr--

  方法一:

#!/bin/bash9kqLinux联盟
9kqLinux联盟
#最简单,效率最高的办法9kqLinux联盟
9kqLinux联盟
mkdir -p /userdata/{1..50} && chmod 754 /userdata/{1..50}9kqLinux联盟

  方法二:

#!/bin/bash9kqLinux联盟
9kqLinux联盟
#利用seq命令加while read结构9kqLinux联盟
9kqLinux联盟
seq 1 50 | while read i;do 9kqLinux联盟
   mkdir -p /userdata/$i9kqLinux联盟
   chmod 754 /userdata/$i9kqLinux联盟
done9kqLinux联盟

  方法三:9kqLinux联盟
  用for或while循环

#!/bin/bash9kqLinux联盟
9kqLinux联盟
i=09kqLinux联盟
while [ $i -lt 50 ];do 9kqLinux联盟
   let i=i+19kqLinux联盟
   mkdir -p /userdata/$i9kqLinux联盟
   chmod 754 /userdata/$i9kqLinux联盟
done9kqLinux联盟

 

#!/bin/bash9kqLinux联盟
9kqLinux联盟
for ((i=1;i<=50;i++));do 9kqLinux联盟
   mkdir -p /userdata/$i9kqLinux联盟
   chmod 754 /userdata/$i9kqLinux联盟
done9kqLinux联盟

  方法四:

#!/bin/sh9kqLinux联盟
9kqLinux联盟
9kqLinux联盟
for D in user{1..50}9kqLinux联盟
do9kqLinux联盟
mkdir -m 754 -p $D9kqLinux联盟
done
9kqLinux联盟

  3.

在linux系统中有个文件,文件名为ABC.txt。如何将当前的系统时间追加到此文件行首?

9kqLinux联盟
  三种方法:

echo -e "`date`\n`cat ABC.txt`" > ABC.txt9kqLinux联盟
echo "`date | cat - ABC.txt`" > ABC.txt9kqLinux联盟
sed -i "1i`date`" ABC.txt
9kqLinux联盟

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·linux Shell编程入门 实例讲解详解  (2006-09-21 11:21:57)
 ·Linux shell编程的一些注意事项  (2006-08-06 11:07:18)