本文地址
点击关注微信公众号 wenyuqinghuai
分享提纲:
1. shell中的函数
2. shell中的数组
3. shell中的变量
4. shell中的运算符
5. Linux的一些命令
6. 几个自定义的脚本(可以添加到命令中)
1.1)【定义shell函数(define function)】
[ function ] funname [()] { action; [return int;] }
说明:
实例(testfun1.sh):
1 #!/bin/sh 2 3 fSum 3 2; 4 function fSum() 5 { 6 echo $1,$2; 7 return $(($1+$2)); 8 } 9 fSum 5 7; 10 total=$(fSum 3 2); 11 echo $total,$?; 12 13 sh testfun1.sh 14 testfun1.sh: line 3: fSum: command not found 15 5,7 16 3,2 17 1 18 5
从上面这个例子我们可以得到几点结论:
1.2)【函数作用域,变量作用范围】
先我们看一个实例(testfun2.sh ):
1 #!/bin/sh 2 3 echo $(uname); 4 declare num=1000; 5 6 uname() 7 { 8 echo "test!"; 9 ((num++)); 10 return 100; 11 } 12 testvar() 13 { 14 local num=10; 15 ((num++)); 16 echo $num; 17 18 } 19 20 uname; 21 echo $? 22 echo $num; 23 testvar; 24 echo $num; 25 26 sh testfun2.sh 27 Linux 28 test! 29 100 30 1001 31 11 32 1001
我们一起来分析下上面这个实例,可以得到如下结论:
2.1)【数组的定义】
两种方法
arr=(1 2 3 4 5) # 注意是用空格分开,不是逗号!!
和
array array[0]="a" array[1]="b" array[2]="c"
2.2)【数组的遍历】
for var in ${ arr[@] }; do echo $var done
2.3)【数组其他】
-- 【读取数组】
valuen=${array_name[n]} #获取单个元素 echo ${array_name[@]} #获取所有元素 # 取得数组元素的个数 length=${#array_name[@]} # 或者 length=${#array_name[*]} # 取得数组单个元素的长度 lengthn=${#array_name[n]}
3.1)定义
your_name="runoob.com"
-- 不能有空格
--可以使用表达式赋值
for file in `ls /etc`
3.2)【使用变量】
your_name="qinjx" echo $your_name echo ${your_name}
-- 可以加 {}, 也可以不加
--【只读变量】 readonly myUrl
--【删除变量】 unset variable_name
3.3)【Shell 字符串】
-- 可以单引号或者双引号,双引号会解析变量
--获取字符串长度
string="abcd" echo ${#string} #输出 4
-- 截取字符串
string="runoob is a great site" echo ${string:1:4} # 输出 unoo
-- 查找字符串
string="runoob is a great company" echo `expr index "$string" is` # 输出 8
4.1)【基本运算符】
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
#!/bin/bash val=`expr 2 + 2` echo "两数之和为 : $val"
4.2)【关系运算符】
lt : litter than
gt: grater than