zoukankan      html  css  js  c++  java
  • Shell

    http://www.jcwcn.com/article-31939-1.html

    file hello

    hello
    #!/bin/bash 
    # This is a very simple example
    echo Hello World

    执行(有三种方式):

    $bash hello

    $sh hello

    $./hello (由于hello文件中第一行指明了/bin/bash文件,系统会调用/bin/bash程序去解释执行)

    1.2 关于输入、输出和错误输出

    > 表示输出(标准输出和标准错误输出)重定向符号

    >> 表示不清除原文件内容,而追加输出。

    例如:

    $ ls > ls_result

    $ ls -l >> ls_result

    稍微复杂一点的

    $ find /home -name lost*  2> err_result

    在符号“>”前多了个“2”,表示将标准错误输出重定向。

    将标准错误输出和标准输出都被存到文件中:

    $ find /home -name lost* > all_result 2>&1

    简写

    $ find /home -name lost* >& all_result

    如果出错信息并不重要

    $ find /home -name lost* 2> /dev/null

    试验:

    $ find /home -name lost* > all_result 1>& 2 
    $ find /home -name lost* 2> all_result 1>& 2
    $ find /home -name lost* 2>& 1 > all_result

    另外一个非常有用的重定向操作符是 "-",请看下面这个例子:

    $ (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xvfp -)

    该命令表示把 /source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory 目录下去,这个命令在 /source/directory 和 /dest/directory 不处在同一个文件系统下时将显示出特别的优势。

    下面还几种不常见的用法:

    n<&- 表示将 n 号输入关闭 
    <&- 表示关闭标准输入(键盘)
    n>&- 表示将 n 号输出关闭
    >&- 表示将标准输出关闭

    1.3 BASH中对变量的支规定

    没有定义,不赋值该变量为空(是NULL,不是0)。

    str
    #!/bin/bash 
    # give the initialize value to STR
    STR="Hello World" 
    echo $STR 

    一、变量赋值时,‘=’左右两边都不能有空格

    二、BASH中的语句结尾不需要分号';'

    三、除了在变量赋值和在FOR循环语句头中,BASH中的变量使用必须在变量前加“$"符号。

    四、由于BASH程序是在一个新的进程中运行的,所以该程序中的变量定义和赋值不会改变其他进程或原始Shell中同名变量的值,也不会影响他们的运行。

    更标准的变量引用方式是${STR},$STR是对${STR}的一种简化。

    关于整数变量计算,一般通过let和expr这两个指令来实现

    let "x = $x + 1" 或 x = `expr $x + 1`

    add
    #!/bin/bash 
    x=1999 
    let "x = $x + 1" 
    echo $x 
    x=`expr $x + 1`
    echo $x
    x="olympic'"$x 
    echo $x

    局部变量

    在变量首次被赋值时加上local关键字

    local
    #!/bin/bash 
    HELLO=Hello 
    function hello { 
    local HELLO=World 
    echo $HELLO 
    } 
    echo $HELLO 
    hello 
    echo $HELLO
  • 相关阅读:
    方法转换IE、Firefox、Chrome区别
    splice方法便签
    webstorm主题网址+使用方法
    从程序员到项目经理(一):没有捷径
    界面原型图绘制工具Pencil
    程序员:伤不起的三十岁
    从程序员到项目经理(三):认识项目经理
    从程序员到项目经理(二):如何胜任
    原型制作软件 Axure RP
    软件界面原型设计工具 UIDesigner
  • 原文地址:https://www.cnblogs.com/jimwind/p/2871109.html
Copyright © 2011-2022 走看看