1. 推断一文件是不是块或字符设备文件。假设是将其复制到 /dev 文件夹下

read -p "input a file:" filename

if [ -b $filename -o -c $filename ]

then

cp $filename /dev/

fi

2.编写一个脚本。进行简单的减法运算。要求提示输入变量





#!/bin/bash

read -p "input a number:" num1

read -p "input another number:" num2

let "num3=num1-num2"

echo $num3







3.把某个文件夹下的文件扩展名改为bat,再以时间为文件名称压缩打包存放到某个文件夹。





#!/bin/bash

for file in $(ls $1)

do

new_file=${file%.*}.bat

mv ./$1/$file ./$1/$new_file

tmp=$(date +%y)

tar cvf ./$tmp.tar ./$1

done



4.推断一个数是不是完数。

打印出1-1000之间的完数。

完数就是约数的和等于自身2倍的数。(6,28,496)



#!/bin/bash

sub()

{

i=1;

sum=0;

while [ $i -le $num ]

do

let "m=num%i"

if [ $m -eq 0 ]

then

let "sum=sum+i"

fi

let "i=i+1"

done

let "a=2*num"

if [ $a -eq $sum ]

then

echo $num

fi

}

num=1

while [ $num -le 1000 ]

do

sub

let "num = num+1"

done





5.在某个目录下查找含有指定字符串的文件

#!/bin/bash

for file in $(ls $2)

do

bname=$(grep -l $1 $2/$file)

basename $bname

done





6.加入一个新组为class1,然后加入属于这个组的30个用户,username的形式为stdxx,当中xx从01到30。



#!/bin/bash

groupadd class1

for i in {9901..9930}

do

xx=$(echo $i | sed 's/99//');

useradd -g class1 std$xx -p ""

done





7.设计一个Shell程序。在/userdata文件夹下建立50个文件夹。即user1~user50,并设置每一个文件夹的权限,其\中其它用户的权限为:读。文件全部者的权限为:读、写、运行;文件全部者所在组的权限为:读、运行。



#!/bin/bash

for ((i=1;i<=50;i++))

do

mkdir -p /usrdata/user$i

cd /usrdata

chmod 754 user$i

done





8. 写一个脚本,利用循环计算10的阶乘

#!/bin/sh

factorial=1

for a in `seq 1 10`

do

factorial=` expr $factorial \* $a `

done

echo "10! = $factorial"



9.删除当前文件夹下大小为0的文件

#/bin/bash

for filename in `ls`

do

if test -d $filename

then b=0

else 

a=$(ls -l $filename | awk '{ print $5 }')

if test $a -eq 0

then rm $filename

fi

fi 

done

Linux下shell编程实例的更多相关文章

  1. linux下socket编程实例

    linux下socket编程实例一.基本socket函数Linux系统是通过提供套接字(socket)来进行网络编程的.网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符.s ...

  2. Linux 下shell 编程学习脚手架

    linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...

  3. Linux下Shell编程

    Linux的shell编程 1.什么是shell? 当一个用户登录Linux系统之后,系统初始化程序init就为每个用户执行一个称为shell(外壳)的程序. shell就是一个命令行解释器,它为用户 ...

  4. linux下shell编程示例-获取进程id

    今天初步学习了一下linux下的shell编程,简单记录一下测试用例 1.编辑shell脚本文件如下: #!/bin/bashecho "hello bash linux"echo ...

  5. [转] - linux下socket编程实例

    一.基本socket函数Linux系统是通过提供套接字(socket)来进行网络编程的.网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符.socket也有一个类似于打开文件 ...

  6. linux 下Shell编程(四)

    for循环应用实例 for 循环可以对一个记录集中地数据依次集中地数据依次进行处理. #!/bin/bash #4.13.sh for clear     #看下图区别 for((i=1:i<1 ...

  7. linux 下 Shell编程(三)

    if语句应用实例 if语句可以在程序中实现各种逻辑判断. 用if语句判断并显示文件的信息 可以用test命令和相关的参数来判断文件的属性,然后根据判断结果输出文件的信息. #!/bin/bash #4 ...

  8. 06 Linux下Shell介绍

    一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...

  9. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

随机推荐

  1. EL表达式中引用隐式变量

    除了在jsp中9大隐式变量(在前面文章也叫预定义变量)在转化成为servlet后_jspService中可以看到: public void _jspService(final javax.servle ...

  2. new,delete,malloc,free

    malloc/free是C语言中的内存申请和释放函数,利用它们可方便地管理内存.而在C++中我们又有了新的工具:new/delete.new/delete在管理内存的同时会调用类的构造函数和析构函数, ...

  3. 模拟post请求(PHP)

    <?php //=========================模拟post请求==================================== // ================ ...

  4. zoj 2587 Unique Attack 最小割判定

    题目链接 让你判断最小割是否唯一. 判断方法是, 先求一遍最大流, 然后从源点dfs一次, 搜索未饱和边的数目. 从汇点dfs一次, 同样也是搜索未饱和边的数目, 看总和是否等于n. 如果等于n那么唯 ...

  5. jquery-plugin-biggerLink,highLight-层加亮_andy 阳光生活_百度空间

    How to get the xpath by clicking an html element How to get the xpath by clicking an html element Qu ...

  6. Eclipse、MyEclipse优化,提高运行速度

    MyEclipse 是公认的优秀的软件开发工具,使用非常广泛.相信很多人在使用的过程中,发现其运行速度比较慢,因为每次操作的背后,它调用了很多的命令,执行了很多操作:但是其中大部分的操作都是非必须的: ...

  7. 基于ZooKeeper的Dubbo简单抽样登记中心

    一:设备zookeeper 系统环境 Ubuntu 14.04.2 LTS x64 IP : 192.168.1.102 下载zookeeper-3.4.6.tar.gz到文件夹/opt.拉开拉链 m ...

  8. 记userscripts.org

    发现一些Firefox用户脚本不起作用,userscripts.org访问不能有一个很长的一段时间,我还以为出了什么问题没出去检查.前几天有时间检查脚本,在路上,然后返回到userscripts.or ...

  9. STL-multimap

    转自:http://www.cnblogs.com/xiaoka/archive/2011/08/09/2132342.html multimap提供了可以一种可以有重复键值的STL map类型.其插 ...

  10. linux之vim配置

    代码自动补全和代码跳转阅读,应该是作为程序员最常用的功能之一了,具体二者是指什么我就不解释了.微软的Visual Studio就是靠这两样必杀技牢牢占据着广大windows程序员的心(这里面要有强大的 ...