Linux Shell 编程基础篇

一、变量

1、变量替换和赋值

      引用变量值 $  赋值 =

2、环境变量

 

3、位置参数

作为交互时的输入  $0脚本名字,$1第一个参数 ,但是从第10个参数开始就要用花括号括起来${10}

二、引用

""     双引号 引用除美元符号,反引号,反斜线之外的所有字符

''      单引号 引用所有字符

``    反引号   将内容解释为系统命令

\    反斜线   转义符

三、命令替换  (将命令的标准输出作为值赋给某个变量)

`Linux命令`  或者 ${ Linux 命令 }

三、测试结构也就是比较结构[ ]  左右中括号前后均要又空格

1、整数比较 

[ num1 operator num2 ]    [ 1 -gt 2 ]    

2、浮点数比较 需要借助bc计算器

`echo '1.1>1' | bc`

3、字符串比较

test "$str"  返回字符串str是否不为空   注意其中的双引号不能少

test -n "$str" 返回字符串str是否为空

[ "$str1" = "$str2" ]   [ "$str1" != "$str2"]

4、文件操作符

test file_operator File

[ file_operator file ]    如   [ -f filename ] 是否为文件

5、逻辑运算符

[ ! expression ] 非  [ expression1 -a expression2 ] 与  [ expression1 -o expression2 ] 或

四、判断

1、if结构

if expression

then

command

else

command

fi

或者

if expression

then

command

elif expression

then command

else 

command

fi

2、case结构

case variable in

value1)

      command;;

value2)

      command;;

valueN)

      command;;

*)

     command;;

esac

3、列表for循环

 

 

for variable in 1 2 3 4 5 

do

    echo "Hello ,$variable"

done

4、不带列表的for循环(通过命令行传递列表)

for argument

do

     echo "$argument"

done

5、类C风格的for循环

for(( expre1;expre2;expr3 ))

do

    command

done

如:

for(( interger = 1;integer <= 5;integer++ ))

do

    echo "$interger"

done

六、变量的高级用法

1、${#....}和expr length  得字符串得长度

2、expr index $string $substring   在字符串$string上匹配$substring中字符第一次出现的位置

3、expr match $string $substring   

在string的开头匹配substring字符串,返回匹配到substring字符串的长度,substring可以时字符串也可以是正则表达式

如:string="Speeding up small jobs in Hadoop"

       expr match "$string" Spe

       3

4、抽取子串${...}和expre

${string:position}  ${string:postion:length}  //从左边开始截取

${string: -position} #{string:(position)}   //从右边开始截取

 

5、有类型的变量

   declare   [选项] 变量名    选项有  -r (只读) -i(整形) -a(数组) -x(环境变量)

6、间接变量引用

如果一个变量的值是另一个变量的名字,从第一个变量引用第二个变量的值就称为间接变量引用

两种格式表示 eval tempvar=\$$variable  和 tempvar=${!variable}

那么直接引用与间接引用有什么区别呢,看下述例子

variable1=variable2

variable2=Hadoop

echo "varable1=$variable1"   //直接引用输出variable2

eval tempvar=\$$variable1

echo "tempvar = $tempvar" //间接引用输出Hadoop

七、函数

1、函数定义  function func_name(){}

2、脚本中放置多个函数,脚本执行时按照调用函数的顺序执行这些函数。

3、函数相互调用,直接通过函数名调用

 

 

 

 

网上此书的目录很乱,而且一本书分割为好多文件。我详细整理了目录,并且合并为一个PDF文件。希望对大家有帮助。呵呵,这真的是一本好书《LINUX与UNIX SHELL编程指南》 --------------------------------------------- 经典《Linux与UNIX Shell编程指南》 shell是一种完整的编程语言,易学易用;shell脚本可以使烦人的手工作业自动化,使你的工作变得简单、轻松!本书通过各种实用的系统管理小技巧和趣味脚本代码,详尽地介绍了shell编程各个不同的方面。学完本书后,你将成为一名shell编程高手。 内容简介 本书共分五部分 ,详细介绍了SHELL编程技巧,各种UNIX命令及语法,还涉及了UNIX的文字处理以及少量的系统管理问题。本书内容全面,文字简洁流畅,适合SHELL编程人员学习、参考。 目录 第一部分 SHELL 第一章 文件安全与权限 第二章 使用FIND和XARGS 第三章 后台执行命令 第四章 文件名置换 第五章 SHELL输入输出 第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 GERP家族 第九章 AWK介绍 第十章 SED用法介绍 第十一章 合并与分割 第十二章 TR用法 第三部分 登录环境 第十三章 登录环境 第十四章 环境和SHELL变量 第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试脚本 第二四章 SHELL嵌入命令 第五部分 高级SHELL编程技巧 第二五章 深入讨论 << 第二六章 SHELL工具 第二七章 几个脚本例子 第二八章 运行级别脚本 第二九章 CGI脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值