您的位置:首页 > 教程 > linux > Bash脚本中括号和反引号的使用

Bash脚本中括号和反引号的使用

2022-06-19 21:09:24 来源:易采站长站 作者:

Bash脚本中括号和反引号的使用

目录示例讨论总结在Bash脚本中,我们经常需要引用变量或者命令的执行结果来作为文件的名字或者日志的输出,在脚本或者Shell中我们可以使用反引号或者括号()来获取到变量的内容示例示例1...yxV站长之家-易采站长站-Easck.Com

目录
示例
讨论
总结

在 Bash 脚本中,我们经常需要引用变量或者命令的执行结果来作为文件的名字或者日志的输出,在脚本或者 Shell 中我们可以使用反引号 或者括号 () 来获取到变量的内容yxV站长之家-易采站长站-Easck.Com

yxV站长之家-易采站长站-Easck.Com

示例yxV站长之家-易采站长站-Easck.Com

示例 1yxV站长之家-易采站长站-Easck.Com
获取日期的输出yxV站长之家-易采站长站-Easck.Com

echo `date`
# output
2021年 01月 05日 星期二 15:21:23 CST
echo $(date)
# output
2021年 01月 05日 星期二 15:21:32 CST

通过使用反引号或者括号我们可以将命令的输出做为脚本中的内容输入,同样可以使用命令的参数来格式化输出yxV站长之家-易采站长站-Easck.Com

示例 2yxV站长之家-易采站长站-Easck.Com
yxV站长之家-易采站长站-Easck.Com

获取 年-月-日 格式的日期yxV站长之家-易采站长站-Easck.Com

echo `date +%F`
# output
2021-01-05
echo $(date +%F)
# output
2021-01-05

yxV站长之家-易采站长站-Easck.Com

讨论yxV站长之家-易采站长站-Easck.Com

在 Bash 中反引号和括号代表命令输入,所以在脚本中我们只能使用反引号和括号来获取命令的执行和输出结果,而不能使用脚本中声明的变量。而使用 $ 和 ${} 可以获取脚本中声明的变量而不能获取命令的输入yxV站长之家-易采站长站-Easck.Com

#!/usr/bin/bash

variable=name

# use `` to output variable
echo `variable`

# use $ to output variable
echo $variable

# use $() to output variable
echo $(variable)

# use ${} to output variable
echo ${variable}

执行的结果报错yxV站长之家-易采站长站-Easck.Com

▶ ./testyxV站长之家-易采站长站-Easck.Com

./test:行6: variable: 未找到命令yxV站长之家-易采站长站-Easck.Com

nameyxV站长之家-易采站长站-Easck.Com

./test:行12: variable: 未找到命令yxV站长之家-易采站长站-Easck.Com

nameyxV站长之家-易采站长站-Easck.Com

yxV站长之家-易采站长站-Easck.Com

总结

1).(点)与source命令一样,从文件中读取并执行命令,无论该文件是否都有可执行权限都能够正确的执行。且是在当前shell下执行,而不是产生一个子shell来执行(我们通常使用“./filename.sh”去执行一个文件是在当前shell下产生一个www.cppcns.com子shell去执行的)yxV站长之家-易采站长站-Easck.Com

2): 该命令什么都不做,但执行后会返回一个正确的退出代码,即exit 0,类似于passyxV站长之家-易采站长站-Easck.Com

3)() 将多个命令组合在一起执行,相当于一个命令组。yxV站长之家-易采站长站-Easck.Com

4){}  和()类似,也是将多个命令组合在一起。它们之间的区别是,()是在产生的子shell下执行,而{}是在当前的shell下执行。yxV站长之家-易采站长站-Easck.Com

5)[] 与test命令一样,用于比较值以及检查文件类型yxV站长之家-易采站长站-Easck.Com

6)[[]]可以说是[]的“增强版”,它能够将多个test命令支持的测试组合起来yxV站长之家-易采站长站-Easck.Com

7)(())专门来做数值运算,如果表达式求值为 0,则设置退出状态为 1;如果求值为非 0 值,则设置为 0。yxV站长之家-易采站长站-Easck.Com

到此这篇关于Bash脚本中括号和反引号的使用的文章就介绍到这了,更多相关Bash 括号和反引号内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

如有侵权,请联系QQ:279390809 电话:15144810328

相关文章

  • Linux下用GHOST来做系统备份

    Linux下用GHOST来做系统备份

    在Windows系统下备份我们可以用GHOST工具软件完成,Linux系统不能完全依赖于GHOST工具,一则是GHOST本身是有版权的软件,二是GHOST只支持ext2、ext3文件系统的Linux分区,不支持reiserfs、xfs等
    2019-10-25
  • 给 FreeBSD 12.1 安装 GNOME3 图形界面

    给 FreeBSD 12.1 安装 GNOME3 图形界面

    FreeBSD是一个完全开放的、安全的系统,可以Do it yourself的系统。但是个人还是不喜欢呆板的命令行界面,所有就给 FreeBSD 12.1 安装 GNOME3 图形界面。 开始操作,启动FreeBSD 12.1,以root身份
    2019-10-27
  • Ubuntu Studio一个不错的操作系统

    Ubuntu Studio一个不错的操作系统

    Ubuntu Studio 是一个基于 Ubuntu 而面向音频、视频及图形爱好者的操作系统。本次推出的 Ubuntu Studio 为 7.04 版,目前仅支持 Intel i386 兼容的处理器。 Ubuntu Studio 从大量的开源多媒体创作程序
    2019-10-25
  • 最受欢迎的10款Linux免费游戏

    最受欢迎的10款Linux免费游戏

    图为在Linux下运行的免费游戏America's Army 如果你认为 Linux下没有什么好游戏的话,那就错了!我们来看看Linux下最受欢迎的10款游戏吧,而且这些游戏都是完全免费的! # skyreal update(06-12
    2019-10-25
  • compiz fusion特效使用心得(附3D桌面图)

    compiz fusion特效使用心得(附3D桌面图)

    3D桌面图 LINUX发行版就是好,当大多数人还在沉迷于那些什么风格图标鸟玻璃效果甚至孜孜不倦津津乐道的时候,Linux的高手们已经悄悄为我们开启了一个桌面系统3D的时代。 当我第一次
    2019-10-25
  • Ubuntu 下aMule 的安装配置

    Ubuntu 下aMule 的安装配置

    aMule 是一个类似于 eMule 的多平台 P2P 客户端程序。以下将简略叙述 aMule 在 Ubuntu 中的安装及配置 [High ID] 与 [KAD] 的过程。 安装: sudo apt-get install amule sudo apt-get install amule-utils 如果需要
    2019-10-25
  • JMeter jp@gc - stepping thread group插件

    JMeter jp@gc - stepping thread group插件

    这是一个出单接口压力测试的小例子,了解一下压力测试最最基础的基础。出单接口是用来保险出单的,不需要在UI界面下一步下一步的出单,接口一调数据入库完事~~~。再啰嗦一句接
    2019-10-27
  • Ubuntu 下使用K3B软件刻录光盘(图)

    Ubuntu 下使用K3B软件刻录光盘(图)

    不知大家会不会在Ubuntu下刻录光盘呢?k3b是KDE环境下的一个CD/DVD刻录软件,有非常容易使用的界面,功能比较齐全。用起来感觉就象是win下的Nero一样简单自然,比ubuntu里原来的刻录CD方式
    2019-10-25