11.  数组:

Shell中提供了创建一维数组的能力,你可以把一串数字、名字或者文件放在一个变量中。使用declare的-a选项即可创建它们,或者在变量后面增加下标操作符直接创建。和很多其它开发语言一样,Shell中的数组也是0开始的,然而不同的是Shell中数组的下标是可以不连续的。获取数组中某个元素的语法格式为: ${arrayname[index]}。见如下示例:
    /> declare -a friends                   #声明一个数组变量
    /> friends=(sheryl peter louise)   #给数组变量赋值
    /> echo ${friends[0]}                #通过数组下标的方式访问数组的元素
    sheryl
    /> echo ${friends[1]}
    peter
    /> echo ${friends[2]}
    louise
    /> echo ${friends[*]}                #下标中星号表示所有元素。
    shery1 peter louise
    # ${#array[*]}表示数组中元素的数量,而${#friend[0]}则表示第一个元素的长度。
    /> echo ${#friends[*]}    
    3
    /> unset friends                         #unset array清空整个数组,unset array[index]仅清空指定下标的元素。

    /> x[3]=100
    /> echo ${x[*]}
    100
    /> echo ${x[0]}                        #0下标的元素并没有被赋值过,因为输出为空。

    /> echo ${x[3]}
    100
    /> states=(ME [3]=CA [2]=CT)   #ME的下标为0。
    /> echo ${states[0]}
    ME
    /> echo ${states[1]}                 #数组下标为1的位置没有被赋值过,因此没有输出。

    /> echo ${states[2]}
    CT
    /> echo ${states[3]}
    CA

    12.  函数:
    和C语言一样,Shell中也可以创建自己的自定义函数。其格式如下:
    function_name () { commands; commands; }
    function function_name { commands; commands; }
    function function_name () { commands; commands; }
    函数的参数在函数内是以$[0-9]${10}...,这种局部变量的方式来访问的。见下面的示例:

    #函数的左花括号和命令之间必须有至少一个空格。每个命令的后面都要有一个分号,即便是最后一个命令
    /> function greet { echo "Hello $LOGNAME, today is $(date)"; }
    #此时函数已经驻留在当前的bash shell中,因此使用函数效率更高。
    /> greet   
    Hello root, today is Fri Nov 18 20:45:10 CST 2011
    /> greet() { echo "Hello $LOGNAME, today is $(date)"; }
    /> greet
    Hello root, today is Fri Nov 18 20:46:40 CST 2011
    #welcome函数内部使用了函数参数。
    /> function welcome { echo "Hi $1 and $2"; }
    /> welcome stephen jane    
    Hi stephen and jane
    #declare -F选项将列出当前Shell中驻留的函数
    /> declare -F
    declare -f greet
    declare -f welcome
    #清空指定的函数,使其不在Shell中驻留。
    /> unset -f welcome

        13.  重定向:

下面的列表为Shell中支持的重新定向操作符。

操作符

功能

<

重新定向输入

>

重新定向输出

>>

追加输出

2>

重新定向错误

&>

重新定向错误和输出

>&

重新定向错误和输出

2>&1

重新定向错误到标准输出

1>&2

重新定向标准输出到错误

>|

重新定向输出的时候覆盖noclobber选项

#find命令将搜索结果输出到foundit文件,把错误信息输出到/dev/null
    /> find . -name "*.c" -print > foundit 2> /dev/null
    #将find命令的搜索结果和错误信息均输出到foundit文件中。
    /> find . -name "*.c" -print >& foundit
    #同上。
    /> find . -name "*.c" -print > foundit 2>&1
    #echo命令先将错误输出到errfile,再把信息发送到标准错误,该信息标准错误与标准输出合并在一起(errfile中)。
    /> echo "File needs an argument" 2> errfile 1>&2

和C语言一样,Shell中也可以创建自己的自定义函数。其格式如下:
    function_name () { commands; commands; }
    function function_name { commands; commands; }
    function function_name () { commands; commands; }
    函数的参数在函数内是以$[0-9]${10}...,这种局部变量的方式来访问的。见下面的示例:

    #函数的左花括号和命令之间必须有至少一个空格。每个命令的后面都要有一个分号,即便是最后一个命令
    /> function greet { echo "Hello $LOGNAME, today is $(date)"; }
    #此时函数已经驻留在当前的bash shell中,因此使用函数效率更高。
    /> greet   
    Hello root, today is Fri Nov 18 20:45:10 CST 2011
    /> greet() { echo "Hello $LOGNAME, today is $(date)"; }
    /> greet
    Hello root, today is Fri Nov 18 20:46:40 CST 2011
    #welcome函数内部使用了函数参数。
    /> function welcome { echo "Hi $1 and $2"; }
    /> welcome stephen jane    
    Hi stephen and jane
    #declare -F选项将列出当前Shell中驻留的函数
    /> declare -F
    declare -f greet
    declare -f welcome
    #清空指定的函数,使其不在Shell中驻留。
    /> unset -f welcome

    13.  重定向:
    下面的列表为Shell中支持的重新定向操作符。

操作符

功能

<

重新定向输入

>

重新定向输出

>>

追加输出

2>

重新定向错误

&>

重新定向错误和输出

>&

重新定向错误和输出

2>&1

重新定向错误到标准输出

1>&2

重新定向标准输出到错误

>|

重新定向输出的时候覆盖noclobber选项

#find命令将搜索结果输出到foundit文件,把错误信息输出到/dev/null
    /> find . -name "*.c" -print > foundit 2> /dev/null
    #将find命令的搜索结果和错误信息均输出到foundit文件中。
    /> find . -name "*.c" -print >& foundit
    #同上。
    /> find . -name "*.c" -print > foundit 2>&1
    #echo命令先将错误输出到errfile,再把信息发送到标准错误,该信息标准错误与标准输出合并在一起(errfile中)。
    /> echo "File needs an argument" 2> errfile 1>&2
    /> cat errfile

转载于:https://blog.51cto.com/andra/815049

linux 命令详解 二十四相关推荐

  1. linux 命令详解 二十二

    #${variable:=word}的示例,其C语言表示形式为: #    if (NULL == variable) {     #        variable=world;     #     ...

  2. linux 命令详解 二十七

       4.  循环语句:     Bash Shell中主要提供了三种循环方式:for.while和until.     for循环声明格式:     for variable in word_lis ...

  3. linux中date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...

    linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例) 发布于 2016-02-07 15:58:40 | 108 次阅读 | 评论: 0 | 来源: 网友投递 LinuxLinux是一 ...

  4. 【WINDOWS / DOS 批处理】for命令详解(十)

    for命令详解(一)[共十篇] for命令详解(二)[共十篇] for命令详解(三)[共十篇] for命令详解(四)[共十篇] for命令详解(五)[共十篇] for命令详解(六)[共十篇] for命 ...

  5. Linux命令详解:md5sum 命令

    Linux命令详解:md5sum 命令 一.md5 算法介绍 二.md5sum 命令使用说明 三.md5sum 命令帮助 四.md5sum 命令选项.参数 语法 选项 参数 五.md5sum 命令实战 ...

  6. c linux time微秒_学习linux,看这篇1.5w多字的linux命令详解(6小时讲明白Linux)

    用心分享,共同成长 没有什么比每天进步一点点更重要了 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了 ...

  7. CMake手册详解 (十四)

    2019独角兽企业重金招聘Python工程师标准>>> SirDigit CMake手册详解 (十四) CMD#32 : find_path搜索包含某个文件的路径 find_path ...

  8. linux命令chgrp,Linux命令详解之–chgrp命令 | Linux大学

    摘要 Linux chgrp命令 可以用来变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可. 我们在Linux命令详解之–chown命令 | Linux大学这篇文章中,我们介绍了更改文件 ...

  9. 《Linux命令详解手册》——Linux畅销书作家又一力作

    关注IT,更要关心IT人,让系统管理员以及程序员工作得更加轻松和快乐.鉴于此, 图灵公司引进了国外知名出版社John Wiley and Sons出版的Fedora Linux Toolbox: 10 ...

最新文章

  1. Appstore|IPA
  2. 【NLP-词向量】词向量的由来及本质
  3. 继续送假期干货——响应式图片工具smartImg
  4. 数据结构之排序五:选择排序
  5. T-SQL 之 执行顺序
  6. 最近学gvim,mark低先
  7. 【Kafka】failed due to invalid credentials with broker older than 1.1.0
  8. linux shell spool,Linux/Unix shell 脚本中调用SQL,RMAN脚本
  9. SSD源码解读之ssd_pascal.py
  10. 复制构造函数被调用的3种情况
  11. Windows XP SP3 Beta版本(KB936929)已经发布到Connect
  12. 加入go行列的一个敲门砖吗----小玩意cs多人即时聊天,没有用数据库的,没有用框架的
  13. AUTOCAD——中心缩放
  14. python3手机版画图软件_Python实现画图软件功能方法详解
  15. 已知两边求角度公式_已知三边求角度公式
  16. python日期计算,Python 日期的转换及计算的具体使用详解
  17. Javascript笔记大全03
  18. 家长警惕 这4类孩子最易反复感冒
  19. python命名规则数字开头的成语_day01 Python基础
  20. 【转】Python之获取每日涨停板股票数据并绘制K线图!

热门文章

  1. jQuery Easy UI Panel(面板)组件
  2. Interactive cloth
  3. cisco ***笔记
  4. rand()和srand()产生伪随机数zz
  5. mysql 分段执行_19个MySQL优化技巧,索引优化这样做最有效!
  6. python初学小甲鱼_Python零基础入门学习 作者:小甲鱼
  7. 使用采用 Android* OS 的英特尔® 集成性能基元
  8. Win7如何快速打开本地连接
  9. Android Ndef Message解析
  10. MySQL error writing file 错误