Bash脚本中括号和反引号的使用
目录
在 Bash 脚本中,我们经常需要引用变量或者命令的执行结果来作为文件的名字或者日志的输出,在脚本或者 Shell 中我们可以使用反引号 或者括号 () 来获取到变量的内容
示例
示例 1
获取日期的输出
echo `date` # output 2021年 01月 05日 星期二 15:21:23 CST
echo $(date) # output 2021年 01月 05日 星期二 15:21:32 CST
通过使用反引号或者括号我们可以将命令的输出做为脚本中的内容输入,同样可以使用命令的参数来格式化输出
示例 2
获取 年-月-日 格式的日期
echo `date +%F` # output 2021-01-05
echo $(date +%F) # output 2021-01-05
讨论
在 Bash 中反引号和括号代表命令输入,所以在脚本中我们只能使用反引号和括号来获取命令的执行和输出结果,而不能使用脚本中声明的变量。而使用 $ 和 ${} 可以获取脚本中声明的变量而不能获取命令的输入
#!/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}
执行的结果报错
▶ ./test
./test:行6: variable: 未找到命令
name
./test:行12: variable: 未找到命令
name
总结
1).(点)与source命令一样,从文件中读取并执行命令,无论该文件是否都有可执行权限都能够正确的执行。且是在当前shell下执行,而不是产生一个子shell来执行(我们通常使用“./filename.sh”去执行一个文件是在当前shell下产生一个子shell去执行的)
2): 该命令什么都不做,但执行后会返回一个正确的退出代码,即exit 0,类似于pass
3)() 将多个命令组合在一起执行,相当于一个命令组。
4){} 和()类似,也是将多个命令组合在一起。它们之间的区别是,()是在产生的子shell下执行,而{}是在当前的shell下执行。
5)[] 与test命令一样,用于比较值以及检查文件类型
6)[[]]可以说是[]的“增强版”,它能够将多个test命令支持的测试组合起来
7)(())专门来做数值运算,如果表达式求值为 0,则设置退出状态为 1;如果求值为非 0 值,则设置为 0。
到此这篇关于Bash脚本中括号和反引号的使用的文章就介绍到这了,更多相关Bash 括号和反引号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:- Linux_Bash脚本_单引号’双引号“”反引号`小括号()中括号[]大括号{}
- 使用sh执行bash脚本的奇怪问题
- linux命令:bash脚本选项使用cat <<EOF使用 getopts选项描述
- 如何使用 Bash 脚本从 SAR 报告中获取 CPU 和内存使用情况 | Linux 中国
- 使用 Bash 脚本读取 rrd 文件中的性能参数值
- linux:用php语法写脚本且获取stdin/stdout的方式,对于不想使用bash语法非常有用
- 在Bash脚本中创建和使用数组方法总结
- 在Fedora下自动配置Java开发环境的bash脚本(适用于使用bash终端的Linux)
- 在Bash脚本中使用命名管道(FIFO)
- 如何使用 Bash 脚本从 SAR 报告中获取 CPU 和内存使用情况
- Shell脚本中单引号(‘)和双引号(“)的使用区别[转载]
- bash脚本编程之在bash脚本中使用选项
- Shell脚本中单引号(‘)和双引号(“)的使用区别
- 使用Bash脚本将build好的程序部署到iPhone上
- Shell脚本基础之几种括号、引号的使用方法
- gawk脚本中使用bash脚本变量
- 使用BASH编写Linux Shell脚本——1. Linux 介绍
- 使用bash命令参数调试shell脚本
- Shell脚本语言---单引号(‘)和双引号(“)的使用区别
- easonjim Code, code and more code. Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别 一、意思 #!/bin/sh是指此脚本使用/b