Bash命令行处理.docx
文本预览下载声明
详解Bash命令行处理
作者: HYPERLINK /bbs/member.php?u=11233 home_king来自:LinuxSir.Org整理:北南南北摘要:我看很多兄弟写脚本或命令时出现错误的主要原因,是因为不了解bash的命令行处理。我在这里总结了一下,大家可以参考一下。其中也涉及到双引号,单引号以及eval的技巧,我会一一讲述。
目录
HYPERLINK /main/?q=node/134 \l 0 前言 HYPERLINK /main/?q=node/134 \l 1 一、bash命令处理的12个步骤; HYPERLINK /main/?q=node/134 \l 2 二、关于引用 HYPERLINK /main/?q=node/134 \l 3 三、eval的作用;
HYPERLINK /main/?q=node/134 \l 3.1 1、例子1:用eval技巧实现shell的控制结构for HYPERLINK /main/?q=node/134 \l 3.2 2、例子2:一个典型错误的例子 HYPERLINK /main/?q=node/134 \l 3.3 3、例子3:设置系统的ls色彩显示
HYPERLINK /main/?q=node/134 \l 4 四、命令优先级表 HYPERLINK /main/?q=node/134 \l 5 五、鉴于一些学习中会遇到的困惑,我再给出一些有趣的命令
HYPERLINK /main/?q=node/134 \l 5.1 1、command builtin enable HYPERLINK /main/?q=node/134 \l 5.2 2、command HYPERLINK /main/?q=node/134 \l 5.3 3、builtin HYPERLINK /main/?q=node/134 \l 5.4 4、enable
HYPERLINK /main/?q=node/134 \l 6 六、关于本文 HYPERLINK /main/?q=node/134 \l 7 七、相关文档
++++++++++++++++++++++++++++++++++++++++++++++++++++正文++++++++++++++++++++++++++++++++++++++++++++++++++++
前言
我看很多兄弟写脚本或命令时出现错误的主要原因,是因为不了解bash的命令行处理。我在这里总结了一下,大家可以参考一下。其中也涉及到双引号,单引号以及eval的技巧,我会一一讲述。
Shell从标准输入或脚本中读取的每行称为一个管道行,它包含一个或多个由0个或多个管道字符(|)分隔的命令。对每一个管道行,进行12个步骤的处理。
一、bash命令处理的12个步骤;
+-------------+ 单引号
|-------------------------| |--------------------------|
| -----------------------| 1.分隔成记号|---- ---------------| |
| | -------------------| | 双引号 | |
| | | +-------------+ | |
| | | || | |
| | |读取下一个命令 \/ | |
| | | +-------------------------------------------+ | |
| | | | 2. | | |
| | ------| 检验第一个记号 | | |
| | |开放的关键字
显示全部