Shell脚本中$符号的嵌套使用方法小结

 更新时间:2023年05月06日 10:02:13   作者:liitdar  
在编写Shell脚本时,通过嵌套使用$符号,间接获取变量或表达式的值的具体方法,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文主要介绍在编写 Shell 脚本时,通过嵌套使用 $ 符号,间接获取变量或表达式的值的具体方法。

先说结论,在 Shell 脚本中,可以通过使用 eval 命令来实现 $ 符号的嵌套使用。

Man 手册中对于 eval 命令的解释如下:

eval [arg ...]
    The args are read and concatenated together into a single command. This command is then read and executed by the shell, and its exit status is returned as the value of eval. If there are no args, or only null arguments, eval returns 0.

1 示例

下面通过一个示例来展示通过 eval 命令实现 $ 符号嵌套使用的方法。

现有两个变量:“l_stream_file_index”的值为“1”,“SOURCE_FILE_1”的值为“demo.mp4”,如下图所示:

此时,为了通过变量“l_stream_file_index”间接获取到“SOURCE_FILE_1”的值,就要嵌套使用 $ 符号,但是直接嵌套使用 $ 符号时会报错,如下图所示:

此时,就可以通过 eval 命令解决上述问题了。在本例中,使用 eval 命令的最终命令如下:

eval echo '${SOURCE_FILE_'"${l_stream_file_index}"'}'

上述命令执行结果如下图所示:

说明:

  • eval 命令会将后接命令中的参数先替换为对应的值,然后再进行最终的命令执行操作;
  • 在使用 eval 命令时,需要注意单引号''和双引号""的区别。在上面的示例中,eval 先将双引号中的变量进行了替换。

2 说明

在 Shell 脚本中嵌套使用 $ 符号时,需要特别谨慎小心,因为这种使用方式容易引起一些奇怪的错误。

例如,在下面的示例中,就会报错文件不存在,但实际上文件是存在的,如下图所示:

上图中的报错让人费解,不过肯定是因为嵌套使用 $ 符号导致的,根据本文前面介绍的内容,此时通过 eval 命令修饰该条语句,问题就解决了,如下图所示:

到此这篇关于Shell脚本中$符号的嵌套使用方法小结的文章就介绍到这了,更多相关Shell $符号嵌套使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Shell循环语句及中断语句的使用

    Shell循环语句及中断语句的使用

    本文主要介绍了Shell循环语句及中断语句的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Linux Shell 数组建立及使用技巧

    Linux Shell 数组建立及使用技巧

    shell命令在linux系统中是一个非常重要的功能了,我们可以通过它来做N多的事情,本文给大家介绍linux shell 数组建立及使用技巧,需要的朋友可以参考下
    2015-10-10
  • shell模糊匹配与正则详解

    shell模糊匹配与正则详解

    这篇文章主要介绍了shell模糊匹配与正则详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Shell处理带空格的文件名的方法

    Shell处理带空格的文件名的方法

    这篇文章主要介绍了Shell处理带空格的文件名的方法,文中总结了若干处理带空格的文件名的技巧,需要的朋友可以参考下
    2014-06-06
  • Linux BASH多进程并行处理的方法实现

    Linux BASH多进程并行处理的方法实现

    Linux下BASH多进程并行处理的实现代码,需要的朋友可以参考下
    2013-01-01
  • 学习shell脚本之前的基础知识[图文]

    学习shell脚本之前的基础知识[图文]

    在学习shell脚本之前,需要你了解很多关于shell的知识,这些知识是编写shell脚本的基础,所以希望你能够熟练的掌握
    2013-03-03
  • Linux查看日志文件写入速度的4种方法详解

    Linux查看日志文件写入速度的4种方法详解

    有时,我们需要查看某个文件的增长速度,如日志文件,以此来感受系统的负载情况,因为一般情况下,日志写入越快,说明系统负载越重。本文总结了Linux中查看日志增长速度的几种方法,需要的可以参考一下
    2022-06-06
  • Linux 中的通配符详解及实例

    Linux 中的通配符详解及实例

    这篇文章主要介绍了Linux 中的通配符详解及实例的相关资料,希望通过本文能掌握Linux 通配符的知识,需要的朋友可以参考下
    2017-09-09
  • 详解linux命令useradd添加用户

    详解linux命令useradd添加用户

    这篇文章主要介绍了linux命令useradd添加用户的相关知识,本文通过应用实例代码给大家详细介绍,需要的朋友可以参考下
    2018-10-10
  • Linux Shell中curl和wget使用代理IP的方法教程

    Linux Shell中curl和wget使用代理IP的方法教程

    这篇文章主要给大家介绍了关于在Linux Shell中curl和wget使用代理IP的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08

最新评论