【Shell篇二】Shell变量与字符串

发布于:2023-01-22 ⋅ 阅读:(307) ⋅ 点赞:(0)

在这里插入图片描述



一、Shell变量

1、定义变量

var_url="www.9527.com"
  • 变量名和等号之间不能有空格
  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
  • 中间不能有空格,可以使用下划线 _
  • 不能使用标点符号和bash里的关键字(help查看保留关键字)

2、变量分类

  • 全局变量(环境变量)
  • 局部变量:只能在创建它们的Shell函数或Shell脚本中使用
**查看所有变量
[root@loaclhost~] set
BASH=/bin/bash
name=9527
HOME=/root
…………

**查看全局变量
[root@loaclhost~]env
USER=root
SHELL=/bin/bash
…………

自定义环境变量

export 变量名=value
变量名=value ; export 变量名
declare - x 变量名=value
-----------------------------
[root@loaclhost~]declare -x llg=9527
**unset取消变量

以上是暂时设定环境变量,永久生效要加在用户家目录下的.bashrc和.bash_profile文件中。

查看变量

echo $变量名
printf $变量名

具体环境变量的相关配置文件:
在这里插入图片描述

3、使用变量$
在定义过的变量名前加美元符号,花括号不是必须,但加花括号可帮助解释器识别变量的边界。

echo $var_url

#加{}区分变量边界
echo ${var_url}Request

4、二次赋值

a=1
echo $a
a=2
echo $a

4、只读变量readonly

[root@localhost~]vi test.sh
@!/bin/bash
var="www.9527.com"
readonly var
var="www.baidu.com"

[root@localhost~]./test.sh
/bin/bash: This variable is read only.

5、删除变量unset

[root@localhost~]vi test.sh
@!/bin/bash
var="www.9527.com"
unset var
echo $var

[root@localhost~]./test.sh
//无输出

二、Shell字符串

1、字符串
Shell中的字符串可以单引号,也可双引号,也可不用引号

2、单引号与双引号
单引号里的东西全部原样输出,单引号的变量是无效的
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),只能成对出现,用于字符串拼接

[root@localhost~]name=9527
[root@localhost~]echo '代号,'$name'!'
代号,9527!
[root@localhost~]echo '代号,$name!'
代号,$name!

双引号中可以有变量,也可以有转义字符

[root@localhost~]name=9527
[root@localhost~]echo "代号,"$name""
代号,9527
[root@localhost~]echo "代号,$name"
代号,9527

这里有个坑爹的地方,报错-bash: !": event not found,懒得转义感叹号了

字符串可不用引号,所以下面的方式最舒服

[root@localhost~]echo 代号,$name!
代号,9527!

字符串的基本操作
[root@localhost~]string=abcdef

**获取字符串长度
[root@localhost~]echo ${#string}
6

**截取字符串
[root@localhost~]echo ${string:0:2}
ab

**查找子字符串位置
[root@localhost~]echo `expr index $string a`
1

3、注释

#单行注释

:<<EOF
注释内容……
注释内容……
注释内容……
EOF
多行注释中,EOF可换成其他字母或者符号,首位相同即可

此外,调试脚本过程中,也可把暂时不用的一段代码用花括号括起来,定义成一个函数,没调用这个函数也就不执行了,效果一样。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到