codecamp

卷1:第3章 The Bourne-Again Shell

原文链接: http://www.aosabook.org/en/bash.html

作者: Chet Ramey

3.1 介绍

Unix Shell提供了一个接口,支持用户通过命令与操作系统进行交互。但shell同时也算得上是一门丰富的编程语言,因为它包含了基本的流程控制结构: 替换(alternation),循环,条件判断,还有基本的数学操作,函数定义,字符串变量,以及与命令之间的双向通信。

shell可以在终端或终端模拟器(如xterm)中以交互的方式运行,也可以存储在文件中作为脚本来使用。大部分现代shell环境(包括Bash)提供命令行编辑功能,用户可以使用Emacs或Vi风格的快捷键来编辑命令行,或访问命令的历史纪录。

Bash的处理过程类似于shell的流水线(pipe):首先由终端或脚本读入数据,然后使用一系列变换过程依次进行处理,执行到最后一个shell命令后返回。

本章将讨论Bash的主要组件:输入处理,解析,单词展开(word expansion)和其他命令处理,管道(pipeline)中的命令执行。这些组件构成一个流水线(pipeline),从键盘或脚本中获取字符,然后逐步转化为命令。

卷1:第1章 Asterisk
卷1:第5章 CMake
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }