iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux下shell脚本字符串变量拼接与赋值的方法
  • 887
分享到

Linux下shell脚本字符串变量拼接与赋值的方法

2023-06-28 11:06:20 887人浏览 八月长安
摘要

本篇内容介绍了“linux下shell脚本字符串变量拼接与赋值的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.字符串拼接shell脚

本篇内容介绍了“linuxshell脚本字符串变量拼接与赋值的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Linux下shell脚本字符串变量拼接与赋值的方法

1.字符串拼接

shell脚本里面可以对字符串进行拼接,并且可以将拼接后的值赋予给另外一个变量,下图给出了几种字符串拼接的样例,供大家参考。

 #!/bin/bash a="123"  # 定义a变量为"123" b="456"  # 定义b变量为"456"  first=$a$b  # 第一种方式来拼接字符串:直接取2个值,将变量值拼接 echo $first  second="$a$b" # 第二种方式来拼接字符串:在2个变量值最外面加字符串 echo $second  third="${a}${b}" # 第三种方式拼接字符串:和第二种类似,就是加${}来进行变量取值。 echo $third 123456789101112

执行上面的脚本,可以看到脚本的执行结果,这3种方式执行的结果是一样的,上述3种均可拼接字符串:

 123456 123456 123456 123

2.定义值为双引号或单引号的字符串

我们知道在shell中单引号和双引号有着特殊的含义,两者也是有区别的,但是如何才能定义一个字符串,使得字符串本身的值包含双引号或者单引号呢,下面的代码,我们给出了示例:

 #!/bin/bash a="\"\"" b="'''" c='""' d='''' echo $a echo $b echo $c echo $d 123456789

执行上面的脚本,我们可以看到脚本的执行结果:

 "" # 变量a的值为2个双引号 ‘’‘ # 变量b的值为3个单引号 “” # 变量c的值为2个单引号    # 变量d的值为空 1234

看到上面的执行结果,我们大致也明白了如何才能定义值为双引号或者单引号的字符串了,下面分享一下我总结的技术知识点:

  1. 定义值为双引号的字符串的方法有2种: 1.1 定义变量时,在最外层使用双引号,在双引号内部使用 ** 来对双引号进行转义,类似于变量a的定义方式。 1.2 定义变量时,在最外层使用单引号**,在单引号内部直接写双引号来进行定义,类似于变量c的定义方式。

  2. 定义值为单引号的字符串方法:在最外层使用双引号,在双引号的内部直接写单引号来进行定义,类似于变量b的定义方式。

上述只是我总结的一些知识点,肯定有遗漏的地方或者其他方法,欢迎各位补充。其实,至于为什么会出现上述情况,个人认为其根本原因在于,shell脚本中单引号与双引号的作用不同。,感兴趣的人可以自行百度,正是两者的区别才导致出现来上述的情况。

3.在单引号和双引号字符串中取变量值

shell中使用单引号和双引号的区别导致了在单引号和双引号变量中取值的不同,下面,下面我们首先来看一个例子,为大家解释下两者的不同:

 #!/bin/bash name="test" a='{   "name":$name,   "age":"45" }' b="{   "name":$name,   "age":"45" }" echo $a echo $b 123456789101112

执行上面一段shell脚本,可看到输出的结果:

 { "name":$name, "age":"45" } # 这是a的值 { name:test, age:45 } # 这是b的值 12

通过上面的执行结果,我们可以看到以下几个问题:

  1. 变量a的定义与变量b的定义,唯一的区别在于a是单引号,b是双引号。

  2. 变量a的值并没有将name变量的值取出,变量b将name的值取出。

  3. 变量a中定义的属性名均带有双引号(例如:“name”), 变量b的值定义的属性名并没有带双引号(例如:name)

那么如何解决上述的第二个和第三个问题呢,首先来看第2个问题,下面给出我的一种解决方式:

在单引号定义的字符串里面,如果想要取到变量的值,需要在变量值上再加一层单引号

下面我们对之前的变量a的定义做一个改造,给出一个示例来说明结果.

 #!/bin/bash name="test" a='{   "name":'$name',   ---> 这里给a的定义多加了一层单引号   "age":"45" }' b="{   "name":$name,   "age":"45" }" echo $a echo $b 123456789101112

再次执行上面的结果,我们可以看到执行结果:

 { "name":test, "age":"45" } { name:test, age:45 } 12

可以看到执行的结果,在变量a中,变量name的值确实被取出来,已进行赋值。

接下来,我们来看第3个问题,就是如何给变量b的属性名加双引号,这个问题的解决方法,类似于我们第二节中,如何定义值为双引号或者单引号的字符串。这里给出我的一个解决方法:利用转义字符。 下面给出我的示例:

 name="test" a='{   "name":'$name',   ---> 这里给a的定义多加了一层单引号   "age":"45" }' b="{   "\"name\"":$name,  ---> 给每个属性值的双引号都加上了转义字符   "\"age\"":"\"45\"" }" echo $a echo $b 1234567891011

执行上面的结果,我们可以看到执行结果为:

 { "name":test, "age":"45" } { "name":test, "age":"45" } 12

可以看到两者的值保持一致,我们可以得出以下结论:

  1. 虽然两者实现了相同的功能,但是发现使用双引号的定义比较繁琐,使用单引号定义的方式比较简便。

  2. 在使用单引号定义时,要注意如果要取某个变量的值,要在变量值上加单引号来取变量值。

  3. 在使用单引号定义时,如果想正常显示双引号,需要使用转义字符来定义双引号。

“Linux下shell脚本字符串变量拼接与赋值的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Linux下shell脚本字符串变量拼接与赋值的方法

本文链接: https://www.lsjlt.com/news/319073.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux下shell脚本字符串变量拼接与赋值的方法
    本篇内容介绍了“Linux下shell脚本字符串变量拼接与赋值的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.字符串拼接shell脚...
    99+
    2023-06-28
  • Linux Shell字符串变量拼接与赋值的使用
    目录1.字符串拼接2.定义值为双引号或单引号的字符串3.在单引号和双引号字符串中取变量值最近在工作用到shell脚本,用到了字符串变量的拼接,同时需要对字符串进行赋值,这里与大家分享一下, 1.字符串拼接 shell脚本...
    99+
    2023-05-06
    Shell字符串变量拼接 Shell字符串变量赋值
  • LinuxShell字符串变量拼接与赋值的使用
    目录1.字符串拼接2.定义值为双引号或单引号的字符串3.在单引号和双引号字符串中取变量值最近在工作用到shell脚本,用到了字符串变量的拼接,同时需要对字符串进行赋值,这里与大家分享...
    99+
    2023-05-19
    Shell字符串变量拼接 Shell字符串变量赋值
  • Linux shell脚本中字符串连接的方法
    如果想要在变量后面添加一个字符,可以用一下方法: $value1=home$value2=${value1}"="echo $value2 把要添加的字符串变量添加{},并且需要把$放到外面。这样输出的结...
    99+
    2022-06-04
    字符串 脚本 方法
  • linux中shell字符串拼接的方法是什么
    在Linux的shell脚本中,可以使用多种方法进行字符串拼接,包括:1. 使用括号和空格进行拼接:```str1="Hello"s...
    99+
    2023-08-30
    linux shell
  • shell脚本字符串分割、截取和拼接的方法是什么
    今天小编给大家分享一下shell脚本字符串分割、截取和拼接的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、分割...
    99+
    2023-07-05
  • Linux shell脚本中字符串连接的方式是什么
    本篇内容介绍了“Linux shell脚本中字符串连接的方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如果想要在变量后面添加一个字...
    99+
    2023-06-09
  • Linux使用shell脚本处理字符串的实现方法
    这篇文章给大家分享的是有关Linux使用shell脚本处理字符串的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 截取字符串的前8位expr substr "$strin...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作