shell脚本编程基础总结

shell脚本编程基础总结

 

一直以来,觉得linux挺好用的,对于一些基本的命令,man一下,或者百度一下都能解决问题,但是如果想用shell做一些自动化一点的事情,还得学好脚本.当然,这里只是说shell脚本.

首先,shell的脚本命令就不罗嗦了,基本都知道,即使不知道也能轻易的查找资料.(当然,有不同版本的shell,都大同小异)

 

1.1 符号命令

参考:http://blog.csdn.net/taiyang1987912/article/details/39551385

简单来说就是:

涉及算术运算或判断就用(()) , 特别是(())只要括号中的表达式符合C语言运算规则,这一点比较舒服;

我个人习惯是:

如果是涉及一些逻辑条件判断,如果条件表达式复杂就用[[]],如果只有<=2的组合,就考虑用[]


1.2命令行参数

既然是命令,那么参数是怎么调入的,怎么取到参数就很重要了,对吧,如果我们想传个参数就来却不知道怎么得到,那就有点jiong..

命令行参数是:

$0,$1,$2.....$9是位置参数,$0指向的是实际的命令\程序\脚本\或者函数,

比如就是执行 ./yourScript ref1 ref2...ref4

那么$0就是./yourScript,

$1就是ref1, $2就是ref2.......

特殊参数$*$@:

$*指向了所有的命令行参数

$@也指向了所有的命令行参数

“$*”将整个参数列表当成一个参数来获取;

“$@”获取整个参数列表,并将他们分割成不同的参数

写个简单测试:

结果

test for "$@" output

/home/

/home/wisdom/

test for "$*" output

/home/ /home/wisdom/

 ./shell_learn_basic_test.sh 脚本内容:

#!/bin/bash

 echo 'test for "$@" output'

 for j in "$@"

 do 

echo $j

done 

echo 'test for "$*" output'

 for j in "$*"

 do 

echo $j

done 

 

1.3 检查返回码

知道怎么获取参数了,我们就来看返回嗎相关内容;

我们知道函数有返回值,这个返回码跟返回值是有区别的, (JS代码为例)

function fun1(){

//something

return “code”

}

调用的时候,var myvar=fun1()就是 ”code”

shell在运行命令时,系统会返回一个上一条命令的响应,称为返回码(return code)

如果执行成功,就返回0,如果失败就返回一个不是0的值,获取上一命令的执行状态是

$?

eg:比如我们要检查一个目录是否存在,如果存在就打印一条语句,如果不存在就创建下再打印一个语句.

test -d /home/basic

if [ "$?" -eq 0 ]   ## 2句完全等价于if test -d /home/basic

then

echo "/home/wisdom is a dictionary"

else

# mkdir /home/basic

echo "/home/wisdom is not exit "

fi

区别一下子就出来了吧;

 

1.4 自定义函数

既然谈到了这里,就来先说自定义函数吧.

自定义函数无非最关注2参数和返回值

调用的方式:fname agr1 arg2

这里的$1就是表示第一个参数,依此类推,$2就是第二个参数,$3就是第3个参数,$n就是表示第n个参数。

例子:

function sumNum(){

result=0

for((i=1;i<100;i++))

do

result=$(($i+$result))

done

echo  "$result"

#return $result

#这里如果我用:return "$result",会没有结果返回; I donnot know why...

}

#here you can use var to get the function's return 

var=`sumNum`

# echo `sumNum`

echo $?

echo $var 

结果:

0

4950

 

1.5 shell中的数学运算

参考http://www.cnblogs.com/craftor/p/3811639.html

但是我觉得关于整数的运算,还是用(())比较舒服;

至于内置的数学运算函数,好像没有呢,知道的告诉我下,谢谢~

 

1.6 基于时间的脚本的运行

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行,最简单的方式就是在这文件后面添加你要执行的脚本;

以下是 crontab 文件的格式:

  {minute} {hour} {dayofmonth} {month} {dayofweek} {fullpathtoshellscript}

  o minute:区间为 0 – 59

  o hour:区间为0 – 2

  o dayofmonth:区间为0 – 31

  o month:区间为1 – 12. 1月. 1212月.

  o Dayofweek:区间为0 – 7.周日可以是07

http://it.100xuexi.com/view/otdetail/20121229/441d6e02-e7b3-488e-9037-0d41f1592e4a.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值