Linux Shell 编程基础篇

本文详细介绍了Shell脚本的基础知识,包括变量处理、引用、命令替换、测试结构、判断结构、循环结构以及函数定义等。同时深入探讨了变量的高级用法,如字符串操作和类型声明,为读者提供了全面的Shell脚本编程指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、变量

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、函数相互调用,直接通过函数名调用

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值