zoukankan      html  css  js  c++  java
  • Shell脚本例子集合

     

    # vi xx.sh 

     

    退出并保存

     

     

    # chmod +x xx.sh 

     

    # ./xx.sh 

     

     

    -2.

    调试脚本的方法

     

     

    # bash -x xx.sh

    就可以调试了

     

     

    -1.

    配置

    secureCRT

    的设置

    (

    我用的是

    6.2.3 build313

    版本

    ,

    汉化版

     

    选项

    ->

    会话选项

    (S)...->

    终端

    ->

    仿真

    ->

    终端

    (T)->

    VT100

    改成

    Xterm->

    点中

    ANSI 

     

     

    颜色

    (A)

    和使用颜色方案

    (U)

    复选框

     

    这样就有颜色显示了

     

     

    选项

    ->

    会话选项

    (S)...->

    终端

    ->

    外观

    ->

    字符编码

    (H)->

    Default

    变到

    UTF-8. 

     

    这样就有中文显示了

     

     

     

    1.

    写一个脚本

    ,

    执行后

    ,

    打印一行提示

    "Please input a 

     

     

    number:",

    要求用户输入数值

    ,

    然后打印出该数值

    ,

    然后再次要求用户输入数值

    .

    直到用户输入

    "end"

    停止

     

    # vi show_var.sh 

     

    脚本内容

     

     

    #!/bin/bash 

     

    unset var 

     

    while [ "$var" != "end" ] 

     

    do 

     

     

     

    echo -n "please input a number: " 

     

     

     

    read var 

     

     

     

    if [ "$var" = "end" ] 

     

     

     

    then 

     

     

     

    break 

     

     

     

    fi 

     

     

     

    echo "var is $var" 

     

    done 

     

     

    命令保存后退出

    ,

    并执行

     

    # chmod +x show_var.sh 

     

    # ./show_var.sh 

     

    please input a number: 1 

     

    var is 1 

     

    please input a number: s 

     

    var is s 

     

    please input a number: end 

     

     

     

     

     

    2.

    写一个脚本

    ,

    测试位置参数

     

    # vi param.sh 

     

    脚本内容

     

     

    #!/bin/bash 

     

    #test shell 

     

    echo $0 

     

    echo $1 

     

    echo $2 

     

    echo $? 

     

    echo $* 

     

    echo $# 

     

     

    命令保存后退出

    ,

    并执行

     

    # chmod +x param.sh 

     

    # ./param.sh yema Bhanv edu network 

     

    ./param.sh //

    程序名称

     

     

    Yema //

    第一个参数

     

     

    Bhanv //

    第二个参数

     

     

    0 //

    程序执行结果

     

     

    yema Bhanv edu network //

    传递参数所组成的字符串

     

     

    4 //

    参数个数

     

     

     

     

     

    3.

    写一个脚本

    ,

    可以根据参数文件名

    ,

    以正确的参数调用

    tar

    来解压缩

    tar.gz

    tar.bz2

    文件

     

    # vi tar_gz_bz2.sh 

     

    脚本内容

     

     

    #!/bin/sh 

     

    case ${1##*.tar.} in 

     

     

     

     

     

    bz2) 

     

     

     

    tar jxvf $1 

     

     

     

    ;; 

     

     

     

    gz) 

     

     

     

    tar zxvf $1 

     

     

     

    ;; 

     

     

     

    *) 

     

     

     

    echo "wrong file type" 

     

    esac 

     

     

    命令保存后退出

    ,

    并执行

     

    # chmod +x tar_gz_bz2.sh 

     

    # ./tar_gz_bz2.sh 

     

     

     

     

    # touch "helloA" > a.txt //

    写一个测试用的文件

     

     

    # tar czvf a.tar.gz a.txt //

    a.txt

    压缩成

    tar.gz

    文件

     

     

    # rm -rf a.txt //

    删除

    a.txt

    来测试脚本

     

     

    # ls a.* 

     

    a.tar.gz 

     

    # ./tar_gz_bz2.sh a.tar.gz 

     

    # ls a.* 

     

    a.tar.gz a.txt //

    验证了正确性

     

     

     

    # touch "helloB" > b.txt //

    写一个测试用的文件

     

     

    # tar cjvf b.tar.bz2 b.txt //

    b.txt

    压缩成

    tar.bz2

    文件

     

     

    # rm -rf b.txt //

    删除

    b.txt

    来测试脚本

     

     

    # ls b.* 

     

    b.tar.bz2 

     

    # ./tar_gz_bz2.sh b.tar.bz2 

     

    # ls b.* 

     

    b.tar.bz2 b.txt //

    验证了正确性

     

     

     

    # rm -rf a.txt a.tar.gz //

    删除测试用的文件

     

     

    # rm -rf b.txt b.tar.bz2 //

    删除测试用的文件

     

     

     

    4.

    小棍子显示

     

     

    # vi showstick.sh 

     

     

    #!/bin/bash 

     

    i=0 

     

    while [ $i -lt 10 ] 

     

    do 

     

     

     

    for j in '-' '\' '|' '/' 

     

     

     

    do 

     

     

     

    echo -ne "33[1D$j" 

     

     

     

    usleep 50000 

     

     

     

    done 

     

     

     

    ((i++)) 

     

    done 

     

     

    保存

     

     

    # chmod +x showstick.sh 

     

    # ./showstick.sh 

     

     

    看效果

     

     

     

    5.

    显示类似

    wget 

    的进度

     

     

    # vi showwget.sh

     

     
     
     
  • 相关阅读:
    [LeetCode] Search a 2D Matrix
    CCBPM中的消息机制,CCIM服务端安装说明
    程序基石系列之C++多态的前提条件
    汇编中常见的一些错误信息
    浏览器的CSS Hacks
    易学设计模式看书笔记(7)
    [易飞]简易制程日报-月报
    js thiskeyword
    时空-问题集锦(转载)
    Delphi 组件渐进开发浅谈(二)——双简合璧
  • 原文地址:https://www.cnblogs.com/hh1137054072/p/7638181.html
Copyright © 2011-2022 走看看