1. 简介
2. 基本元素
2.1 命令与参数
$ cd word; ls -l whizprog.c
-rw-r--r-- 1 tolstoy devel 30252 Jul 9 22:52 whizprog.c
$ make
...
- 空白分割命令行中各个组成部分;
- 命令名称是命令行第一个项目,后面跟着选项;
- 选项开头使用
-
,不带参数的选项可以合并,如-l -t
可以写为-lt
; - 分号
;
表示命令顺次执行,如果是$
,则表示命令异步执行,前一条命令后台执行。
三种基本命令:
-
内建命令:Shell本身所执行的命令,如
cd
、read
; -
Shell函数:功能健全的一系列程序代码,以Shell语言编写,可以像命令一样引用;
-
外部命令:Shell副本在新的进程中所执行的命令。如下图:
2.2 变量
命名规则:
- 字母或下划线开头
- 后接字母、数字、下划线
长度无限制。
取出变量值使用$
,而将几个变量值拼接起来,就需要使用双引号了:fullname="$first $middle $last"
2.3 终端打印
2.3.1 使用命令echo
。
$ echo 'Hello Bash!'
Hello Bash!
echo
后信息可:
格式 | 注意 |
---|---|
带单引号 | 不会对变量(如$var )求值,而是直接显示 |
带双引号 | 不能有字符! ,需要转义\! |
不带引号 | 不能使用; ,因为其被认为是命令定界符 |
echo
的转义序列
序列 | 说明 |
---|---|
\a |
警示字符,通常是ASCII中的BEL字符 |
\b |
退格字符(Backspace) |
\c |
忽略最后的换行符的打印,且其后所有参数皆被忽略 |
\f |
清除屏幕(Formfeed) |
\n |
换行(Newline) |
\r |
回车(Carriage Return) |
\t |
水平制表符(Horizontal tab) |
\v |
垂直制表符(Vertical tab) |
\\ |
反斜杠字符 |
\0ddd |
将字符表示为1-3位的八进制数值 |
2.3.2 printf
和C语言中一样,例如:
#!/bin/bash
# filename: printf.sh
printf "%-5s %-10s %-4s\n" No Name Mark
printf "%-5s %-10s %-4s\n" 1 Sarath 80.3456
# 运行结果
No Name Mark
1 Sarath 80.35
2.3.3 注意
echo
和printf
中的标志应该出现在命令行内任何字符串之前,否则Bash会将其视为另一个字符串。
2.4 特殊文件
-
/dev/null
-
/dev/tty