linux shell变量

shell简介

是应用程序,该程序提供了一个界面,用户通过这个界面访问操作系统内核服务。
linux的shell分类:

  • Bourne Shell (/usr/bin/sh或、/bin/sh)
    - Bourne again Shell (/bin/bash)—最常用
  • c shell(/usr/bin/csh)
  • k shell(/usr/bin/ksh)

例子

#!/bin./bash
echo "Hello World!"

注: #! 是一个约定的标记,他告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。

运行Shell脚本有两种方法:

(shell脚本的文件后缀以 .sh 结尾)
1.作为可执行程序

chmod +x ./test.sh   #使脚本具有执行权限.
./test.sh  #执行脚本 ,必须进入当前目录

2.作为解释器参数
直接运行解释器,其参数是shell脚本的文件名
例:

./bin/sh test.sh
./bin/php test.php

1.shell变量

定义变量
例:your_name="runoob.com"
注:

  • 命令只能是英文字母、数字、下划线。且首个字母不能是数字开头。
  • 中间不能有空格,可以使用下划线。
  • 不能使用标点符号。
  • 不能使用bash里的关键字。

使用变量
使用定义过的变量,只需在变量前加美元符号即可。如:

your_name="qingjx"
echo $your_name
echo ${your_name}

注:变量名花括号是可选的,主要目的为了帮助解释器识别变量的边界。

只读变量
使用readonly 命令可以将变量定义为制度,只读变量的值不能被改变。
例:

myUrl="http://www.baidu.com"
readonly myUrl

删除变量
使用unset命令可以删除变量。删除后的变量,不能再次使用。但unset不能删除readonly变量。

unset myUrl

变量类型:

  • 局部变量
  • 环境变量
  • shell变量

shell字符串

字符串是最常用的数据类型之一,字符串可以使用单引号(1.单引号中的所有字符都会原样输出,即其中的变量值无效。2.单引号中不能出现单独的单引号,但可以出现成对的单引号),也可以是双引号(双引号中可以有变量,也可以出现转义字符)。
例:

str='hello world'
name="bob,\"$str\" \n"
bob,hello world

拼接字符串
双引号:
your_name=“runoob”
greeting="hello, “$your_name”! "
greeting_1="hello, ${your_name}! "
echo $greeting $greeting_1
结果:

hello, runoob! hello,runoob!

单引号:

greeting_2='hello, '$your_name' ! '
greeting_3='hello,'${your_name} ' ! '
echo greeting_2 greeting_3

结果:

hello,runoob!  hello,${your_name}!

获取字符串长度

string="abcd"
echo ${#string}   #输出4

提取子字符串

string="runoob is a great site"
echo ${string:1:4}    #输出unoo

查找子字符串
查找字符i或o的位置(那个字母先出现就计算哪个)

string="runoob is a great site"
echo `expr index "$string" io`     #输出4

注:脚本中`是反引号。

Shell数组

bash只支持一位数组,且没有限制数组的大小。

定义数组
在shell命令中,用括号表示数组,数组元素用“空格”符号割开。

语法:数组名=(值1 值2 值3....)

或者

array_name=(
  value0
  value1 
  value2
  value3
    )

还可以单独定义数组的各个分量:

  array_name[0]=value0
  array_name[1]=value1
  array_name[n]=valuen

注:可以不适用连续的下标,而且下标的范围没有限制。

读取数组

读取数组的一般格式:${数组名[下标]}
例:valuen=${array_name[n]}
       echo ${array_name[@]}  # @、*可以获取数组中的所有元素

获取数组的长度:和获取字符串的方法相同

length=${#array_name[@]}  #取得数组元素的个数
lengthn=${#array_name[n]}  #取得数组单个元素的长度

Shell注释:

 - 单行注释:  #开头的行就是注释

 - 多行注释: 
       :<<EOF
        ......
        EOF
        或
        :<<'
        ......
        .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值