1. shell编程和java、php编程一样,只要有一个能编写代码的文本编辑器
和一个能解释执行的脚本解释器就可以了。
2. 打开文本编辑器,新建文件test.sh,扩展名为sh(不影响脚本执行,见名知意就好)
例:
----------------------------
#!/bin/bash
echo "Hello World !"
-----------------------------
#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行。
3. 运行shell脚本有两种方法
(1)作为可执行程序
chmod +x ./test.sh #使脚本具有执行权限
./test.sh #执行脚本
注:如果写test.sh,linux系统会去PATH里找有没有叫test.sh的,
而只有/bin,/sbin,/usr/bin,/usr/sbin等在PATH里,你的当前
目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用
./test.sh告诉系统说,就在当前目录找。
(2)作为解释器参数
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名
例:
---------------------
/bin/sh test.sh
/bin/php test.php
---------------------
4. 变量名和等号之间不能有空格
定义变量时,不需要加美元符号
使用一个定义过的变量,需要在变量名前加美元符号
5. unset 变量名
删除变量, 但是不能删除只读变量
eq:v:="abc"
unset v
echo $v
result: 没有任何输出
6. 单引号
单引号里的任何字符都会原样输出, 单引号字符串中的变量时无效的;
7. 双引号
双引号里可以有变量,可以出现转义字符
8. bash支持一维数组(不支持多维数组),没有限定数组的大小。
9. 数组的定义
在shell中,用括号来表示数组,数组元素用空格符号分隔开
数组名={值1 值2}
或单独定义数组的各个分量
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
可以不使用连续的下标,而且下标的范围没有限制。
10. 读取数组
${数组名[下标]}
使用@符号可以获取数组中的所有元素
echo ${array_name[@]}
11. 获取数组的长度
length=${#array_name[@]} 取得数组元素的个数
length=${#array_name[*]} 取得数组元素的个数
length=${#array_name[n]} 取得数组单个元素的长度
12. # 单行注释
13. 多行注释,EOF也可以使用其他符号(' 或 !) '
:<<EOF
注释内容...
注释内容...
EOF