shell编程学习之变量

一个学习shell编程的小白,从基础做笔记

变量

  shell中的变量定义与其他编程语言是不同的,不能写类型,并且变量名前不加’$‘符号。最重要的是在赋值号两侧不能加空格。只要是赋值就不可以加$,只有使用的时候必须要加。
  只有在引用的时候才加’$'符号。当引用的时候,可以在变量名两边加括号,当然可以加也可以不加,但是推荐加上,因为在双引号中使用的时候方便识别变量的边界。

#!/bin/bash
_var="Java"

echo -e "\$_var : $_varScript!"
echo -e "\${_var} : ${_var}Script!"

运行截图如下,可见,如果不加括号但是要与后面字符串连接到一起,那么就会出现难以预料的错误
运行截图
  与其他编程语言一样,shell编程也有静态变量,在shell中叫做只读变量,只读变量只能在定义变量之后使用(只有在readonly之后才能是只读变量),在源代码后面加下面代码:

readonly _var
_var="change" 

运行如下:如图,在更改操作时会报错
在这里插入图片描述
  删除变量使用关键字unset,但是只读的变量是不可以被删除的,如下在源代码添加以下代码:

unset _var

在这里插入图片描述
把readonly删除之后,再运行则不会出错,并且被删除的变量echo时为空。

shell字符串

字符串的表示有以下两种:

  • str=“123” 使用双引号,其中可以写变量等
  • str=‘123’ 使用单引号,两个引号中是纯字符串,其中变量和转义字符都是无效的

还有一种引号是``,在这个引号里面中写的是shell命令,`command`代表直接执行该命令。也有与其功能相同的$(),相对来说更推荐此种形式

#!\bin\bash

pure_str='hello world'
str="The current path is `pwd`.\n"

echo -e ${str} 

echo -e 代表带转译的输出
针对于字符串,有几个操作,字符串的拼接,获取字符串的长度,取子串,查找字符。

  • 拼接字符串:直接两个字符串直接连接在一起,中间不要加任何其他字符
  • 获取字符串长度:${#string}
  • 取子串:${string:1:4}代表从字符下标1开始截取4个字符
  • 查找字符:expr index “$string” io 表示在字符串中查找i或o的位置,返回先出现的字符的位置
#!\bin\bash

pure_str='hello world'
str="The current path is `pwd`.\n"
str=${str}${pure_str}

echo -e ${str}
echo -e ${#str}
echo -e ${str:2:5}                                                              
echo $(expr index "$str" ap)

运行结果如下图:
shell编程学习之变量_第1张图片

你可能感兴趣的:(linux)