linux 字符串加入中括号,Linux Shell 基础 -- 总结几种括号、引号的用法
1、双引号 " "
双引号常用于包含一组字符串,在双引号中,除了 "$"、""、" ` (反引号)"有特殊含义外,其余字符(如IFS、换行符、回车符等)没有特殊含义。
$ a=3
$ echo "$a"
输出结果为 3,在双引号中 $ 符仍有特殊含义。
2、单引号 ' '
单引号的功能与双引号类似,不过单引号中的所有字符都没有特殊含义:
$ a=3
$ echo '$a'
输出结果为 $a,可见在单引号中 $ 符是不起作用的。
3、反引号
反引号的功能是命令替换,在反引号 中的内容通常是命令行,程序会优先执行反引号中的内容,并使用运行结果替换掉反引号处的内容。举个例子:
$ echo `date`
这行命令会先执行反引号中的命令 date,然后用 echo 命令打印出 date 命令的结果(与直接使用 date 命令效果一样)。再举个例子:
#!/bin/bash
a=3
b=5
c=`expr $a \* $b`
echo $c
exit 0
4、$ + 小括号 $( )
$(...) 的作用与反引号一样,也是命令替换:
#!/bin/bash
for file in $(ls /)
do
echo $file
done
exit 0
5、$ + 双小括号 $(( ))
$(( )) 的功能是进行算术运算,括号中的内容为数学表达式,使用 $(( )) 可以求数学表达式的值:
#!/bin/bash
a=3
b=5
c=$(($a * $b))
echo $c
exit 0
上述脚本的输出结果为 15。
使用 $(( )) 进行数学运算时,不需要担心乘号( * )等运算符被 shell 误解为其他含义,因为它们都在括号内。
6、$ + 中括号 $[ ]
$[ ] 的功能与 $(( )) 一样,都是用于算术运算。
7、$ + 大括号 ${ }
${ } 的功能是变量替换,类似于 $ 符,但是 ${ } 比 $ 的替换范围更精准:
#!/bin/bash
a=3
b=5
echo $ab
echo ${a}b
exit 0
这段脚本,第一次输出 $ab 的时候,会把 ab 视作一个变量,然后打印 ab 的值,显然为空;第二次使用 ${a}b,则会先输出 a 的值然后再向 STDOUT 打印一个字符 b。
8、小括号 ( )
小括号可以用来定义一个数组变量,如下:
array1=(1 2 3 4 5) // 在 shell 中定义一个数组变量
array2=(one two three four five)
取数组元素的值也是使用 $ 符号,如下:
$ echo $array1
$ 1
$ echo ${array1[2]} # 取数组中的一个元素,索引用方括号括起来,和大部分语言一样,数组的索引是从 0 开始的
$ 3
$ echo ${array2[0]}
$ one
$ echo ${array2[*]} # 输出整个数组
$ one two three four five
这里使用了 ${ } 表达式,进行变量替换。
注意:在 shell 中使用数组变量有时会引起一些问题,而且数组变量的可移植性并不好,因此在 shell 编程中,数组变量使用得并不多。
9、双小括号 (( ))
双小括号命令允许在比较过程中使用高级数学表达式:
(( expression ))
其中,expression 可以是任意的数学赋值或表达式。相比 test 命令只能在比较中使用简单的算术操作,双小括号命令提供了更多的数学符号,可以在双小括号中进行各种逻辑运算、数学运算,也支持更多的运算符(如 ++、-- 等)。
常使用的双小括号来在 for 循环中实现 C 语言风格的迭代:
#!/bin/bash
for ((i = 0; i < 10; i++))
do
echo -n "$i "
done
echo ""
exit 0
10、中括号 [ ]
单个的中括号的功能与 test 命令一样,都是用作条件测试。
#!/bin/bash
read -p "please enter a number: " num
if [ $num -gt 10 ]; then
echo "num > 10"
else
echo "num <= 10"
fi
11、双中括号 [[ ]]
双中括号提供了针对字符串比较的高级特性,使用双中括号 [[ ]] 进行字符串比较时,可以把右边的项看做一个模式,故而可以在 [[ ]] 中使用正则表达式:
#!/bin/bash
if [[ hello == hell* ]]; then
echo "equal"
else
echo "unequal"
fi
exit 0
12、大括号 { }
大括号用于括起一个语句块。如果需要在某些只能使用单个语句的地方(如AND、OR列表中)使用多条语句,则可以用大括号将这多条语句括起来构造一个语句块。
总结:
功能符号
引字符串,字符串中部分特殊符号有意义双引号 " "
引用字符串,字符串中特殊符号全都没有意义单引号 ' '
命令替换反引号、$()
算术运算$(( ))、$[ ]、(( ))
变量替换${}
数组初始化()
条件测试[ ]
字符串比较[[ ]]
括起一个语句块{ }
注意:本文归作者所有,未经作者允许,不得转载
linux 字符串加入中括号,Linux Shell 基础 -- 总结几种括号、引号的用法相关推荐
- Linux之(5)账户和shell基础知识
Linux之(5)账户和shell基础知识 Author:onceday date:2022年8月23日 漫漫长路,而今才刚刚开始- 本内容主要收集整理于: <Linux命令行与shell脚本编 ...
- linux 字符串加入中括号,Shell 中的中括号用法总结
Shell 里面的中括号(包括单中括号与双中括号)可用于一些条件的测试: 算术比较, 比如一个变量是否为0, [ $var -eq 0 ]. 文件属性测试,比如一个文件是否存在,[ -e $var ] ...
- Linux学习第五天——shell 基础及变量
shall的作用和地位: shall的作用:shall作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上 shall在Linux系 ...
- linux 字符串加入中括号,方括号及其在命令行中的不同用法介绍
通配 方括号最简单的用法就是通配.你可能在知道"Globbing"这个概念之前就已经通过通配来匹配内容了,列出具有相同特征的多个文件就是一个很常见的场景,例如列出所有 JPEG 文 ...
- linux获取中括号内容,shell里使用正则表达式提取括号中的内容
遇到个websphere MQ监控的问题,希望通过命令行的方式获取到MQ的一些状态: 1. su - mqm 使用mqm用户 2. dspmq 最简单的命令,查看队列控制器的状态: $ dspmq - ...
- linux字符串转为二进制,Linux printf将十进制转换为二进制?
不,C printf 没有二进制格式的格式修饰符( http://www.cplusplus.com/reference/cstdio/printf/ ),以及linux util 也没有扩展它 %b ...
- linux字符串排序文件,Linux awk+uniq+sort 统计文件中某字符串出现次数并排序
https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计 ...
- linux 字符串时间转换,Linux C/C++时间字符串与time_t之间的转换方法(转)
js 获取小数点位数方法及 字符串与数字之间相互转换方法 1.获取小数点位数方法 a. 使用 js 中 subsrting,indexOf,parseFloat三个函数,代码如下: var s = & ...
- 随手记——Linux中C语言调用shell指令的三种方式
在学习资料满天飞的大环境下,知识变得非常零散,体系化的知识并不多,这就导致很多人每天都努力学习到感动自己,最终却收效甚微,甚至放弃学习.我的使命就是过滤掉大量的无效信息,将知识体系化,以短平快的方式直 ...
最新文章
- python怎么输入代码-python中如何设置代码自动提示
- Xshell相关优化
- JS难点剖析-原型原型链
- 经济学与计算机科学结合,理论计算机在物理学和经济学领域的重要作用
- net 控制台 定时_.NET Core实现基于Quart.Net的任务管理
- 自己常用的wireshark过滤条件
- IE浏览器不能上网的处理办法
- A+B in Hogwarts (20)
- 转发网络《iOS网络编程与云端应用最佳实践》微博转发送书了
- 5.应用测试 5.1测试Spring MVC的控制器
- 无痕埋点(声明式)(原创)
- 【工具推荐】下载你在博客园的文章原稿
- python win32com 字体选择_用python的win32com模块替换word中的文字搞定批量打印奖状...
- Win10注册.bat或.exe成为系统服务(NSSM)
- 浅谈游戏《武士刀:零》——赛博朋克风格城市中的刀光剑影
- think in java interview-高级开发人员面试宝典(十)
- DFM文件以及写该文章的原因等等
- Java面试八股文整理
- 2020湖南省技能竞赛获奖名单_雄安新区网络安全技能竞赛举办!9人获奖!
- OpenSSL环境搭建(WIN10+VS2017)