1.shell 脚本是区分小写的
2.Unix特殊字符有: ( ; $ ? & * () [] ` ‘ “ + 使用其时要进行转义()
3.Shell的注释以#开头
4.函数的定义
Function fuction_name(){
Command to execute
}
调用时直接用function_name.
5.控制结构
1)If...then语句
If [ test_command ]
Then
Commands
if
2)If...then...else语句
If [ test_command ]
Then
Commands
Else
commands
if
3)If...then...elif...then...(else)语句
If [ test_command ]
Then
Commands
Elif [ test_command ]
Then
Commands
Else
Commands
Fi
4)for ... In语句
For loop_varible in argument_list
Do
Commands
done
5)while语句
While test_command_is_true
Do
Commands
Done
6)until 语句
Until test_command_is_true
Do
Commands
Done
7)case语句
Case $variable in
Match_1)
Commands_for_1
Match_2)
Commands_for_2
.
.
.
*) #option for other values
Commands_for_no_match
esac
6.break、continue、exit和return语句
Break跳出整个循环体,然后执行循环体外接下来的代码;
Continue 结束本次循环,继续下次循环;
Exit 退出整个脚本,一般在其后加入一个整数(如exit 0),作为返回代码发送给系统;
Return 用于在函数中返回数据,或返回一个结果给调用函数
7.here文档
用于将输入重定向到某个交互式shell脚本或程序,而不需要用户介入。
Program_name << LABLE
Program_input_1
Program_input_2
.
.
Program_input_#
LABLE
注意,程序输入行中的LABLE标记之间是没有空白的,且输入的必须是程序所期望的准确数据,否则可能会失效。
8.符号命令
( ) 在一个子shell中运行括号所括起来的命令
(( )) 在某个shell中对变量进行求值和赋值,并进行数学运算
$(( )) 对括起来的表达式进行求值
[ ] 与test命令相同
[[ ]] 用于字符串比较
$( ) 命令替换
` ` 命令替换
9.命令行参数
命令行参数$0,$1,$2,...,$9是位置参数,$0指向的是命令本身。
命令shift用于位置参数向左移动,如shift命令命令$2成为$1。Shift加入一个数字来移动多个位置,如shift 3使得$4成为$1。shift是一种按照参数列出顺序来处理每个位置参数的良好方式。
10.特殊参数
$* 指定所有的命令行参数,与$@的意义一样。两者只有在加双引号时意义不同,如
“$*”将整个参数列表作为一个参数来获取,”$@”获取整个参数列表,并将它分隔成不同的参数。
$? 检查返回代码。一个成功执行完的命令返回代码为0,不成功是一个非0值。
11.双引号,单引号和 `(esc下面的按键)
单引号''对内容进行全引用,也就是说,对变量工命令语句使用文字正文,不进行任何替换;而双引号则进行部分引用,则允许字符替换或命令替换。
新闻热点
疑难解答