一、命名语法
一条Bash指令的的命名一般包含三个部分:command(指令);option(选项);argument(参数)。
命名的格式为:command option argument。
ls -l -F file1 file2 file3
-l:以单行格式输出文件详细信息
-F:在每个输出项后面追加文件的类型标识符,具体含义包括:
“*”表示具有可执行权限的普通文件;
“/”表示目录。“@”表示符号链接;
“|”表示命令管道FIFO;
“=”表示sockets套接字;
当文件为普通文件时,不输出任何的字符。
选项
对于选项(option)类型有两种:
1)短选项(short option):由一个连字符和一个字母构成,例如:-a, -s等; 2)长选项(long options):由两个连字符和一些大小写字母组合的单词构成,例如:--size,--help等
通常,一个程序会提供short option和long options两种形式,例如:ls -a,--all。另外,短选项(short option)是可以合并的,例如:-sh表示-s和-h的组合,如果要表示为一个选项需要用长选项--sh。
不是所有的Linux命令都遵循以上的规则,例如:
find -type d -mindepth 2
参数
1、可以是零个或者多个:有默认值;不需要参数。
2、可以是一个或者多个。
二、语法的描述规则
1、方括号中的项是可选的;
2、不在方括号中或者是在大括号中的项是必选的;
3、黑体字必须按原样准确键入;
4、斜体字必须使用适当的值代替;
5、后面接省略号的参数可以多次重复。
如:
ls [ABCDEFGHLOIU@abcdefghlkj][file...]
6、如果一个单独的选项和一个参数组合在一起,那么该选项和参数必须同时使用,如:
find [-H][-L][-P][-D][-D debugopts][-O level][path...][expression]
7、由|(竖线)字符分开的两个或者多个项,表示可以从这个列表中选择一个项,如:
who [OPTION]...[FILE|ARG1 ARG2]
三、一次输入多条命令
1、以”;“隔开时,如:
date;cal cal;date 注:当前者执行失败时,后者就不会执行
2、以“||”隔开时,如:
date||cal cal||date 注:当前者执行失败时,后者才会执行
四、强引用和弱引用
1、弱引用 ""
echo "lucky number is ${RANDOM}" 输出的结果为: lucky number is 12324(随机数)
2、强引用 ' '
echo 'lucky number is ${RANDOM}' 输出的结果为: lucky number is ${RANDOM}
为了弄清楚引起这两种引用的差异的原因。我们需要去了解命令行解析的相关知识。
命令行解析
命令行的解析过程:
1、根据${IFS}(Internal Filed Separator)将其拆分为多个字段word;
2、对其中的(metacharacter)元字符进行处理;
3、对命令进行重组并执行。
补充:元字符包括
=:设定变量 &&:若上一个命令返回TRUE,继续执行 $:引用变量 ||:若上一个命令返回FALSE,继续执行 |:管道 ...:省略 {,}:界定变量范围
强引用' '内的所有meta元字符被关闭;
弱引用" "内的大部分meta元字符被关闭,部分被保留,如$,{,}等。
关于强引用和弱引用的小练习:
$ A="B C" $ echo "$A" 输出B C $ echo '$A' 输出$A $ echo " '$A' " 输出'B C' $ echo ' "$A" ' 输出"$A" $ echo ' '$A' ' 输出B C