您当前的位置:五五电子网电子知识单片机-工控设备源码-程序Linux系统下Shell编程 正文
Linux系统下Shell编程

Linux系统下Shell编程

点击数:7549 次   录入时间:03-04 11:33:32   整理:http://www.55dianzi.com   源码-程序

    Linux下的Shell编程是用来控制Linux下命令行,类似于Makefile。

    示例:

    #test.sh

    #!/bin/sh //使用的文件

    Mkdir ~/teST

    Echo “mkdir suCCessfully”

    在命令行执行:

    chmod 777 test.sh

    ./test.sh

    Shell命令特殊字符:

    #:注释

    &:后台执行

    >:把执行结果输入到一个指定的文件中

    >>:把执行结果附加到一个以存在的文件后面

    .:表示当前目录

    ..:表示上一级目录

    $? 最后一次执行的命令的返回码

    $$ Shell进程自己的PID

    $! Shell进程最近启动的后台进程的PID

    $# 命令行参数的个数

    $0 脚本文件本身的名字

    $1 $2 第一个,第二个命令行参数

    “$*”将所有的命令行参数组织成一个整体,作为一个单词

    $@ 将多个命令行参数看做是多个“单词”

    管道和重定向:

    >:输出重定向

    <:输入重定向

    >>:输出重定向(文件末尾追加)

    |:管道符

    例:

    Ls –l | wc –l //ls输出各行后,用wc统计行数。也就是第一个的输出作为第二个命令的输入

    文件查找:

    Find 文件名,用来查找文件

    Grep “字符串”,用来查找字符串

    If结构

    格式:

    If[条件]

    Then

    命令

    Fi

    Case结构:

    Case 值 in

    模式1)

    命令1

    ;;

    ……

    *)

    命令n

    ;;

    Esac

    While结构:

    While[condition]

    Do

    Commands

    ……

    Last-command

    Done

    Until结构:

    Until[condition]

    Do

    Commands

    ……

    Last-command

    Done

    For结构:

    For变量名 in 列表

    Do

    命令

    Done

    实验:

    编写Shell程序,实现if语句的使用

    #!/bin/sh

    Data>>datalog //将时间附加到datalog文件中

    If test –r errorfile

    Then cat errorfile>>datalog //将出错信息写入datalog文件中

    Rm errorfile

    Else echo‘No error this hour’>>datelog

    Fi

    编写Shell程序,实现Case语句的使用

    #!/bin/sh

    #filename:append.sh

    Case“$#”in //检测命令行的个数

    1) cat >> $1;; //如果是1行,输出地一个参数

    2) cat >> $2 <$1;;

    *)echo’usage:append.sh[from] to’;;

    Esac

    编写Shell程序,实现Case语句的使用

    while [ -r abc.c ] //测试abc.c文件是否存在且为可读

    do echo 'Before sleep......' //如果上面条件为真则输出 'Before sleep......

    sleep 5 //休眠5秒

    echo 'sleep done' //输出sleep done

    done

    编写Shell程序,实现for语句的使用

    #!/bin/sh

    #forTest

    #to test the method for

    COUNTER=0

    for FILES in *

    do

    COUNTER='expr $COUNTER + 1'

    done

    echo "there are $COUNTER files in 'pwd'"

    总结:

    Shell下的编程很丰富,可以大大提高编写应用程序的效率和管理文件及用户。




本文关键字:Linux  源码-程序单片机-工控设备 - 源码-程序