全面整理linux下shell中各种括号的作用及用法
当初自己在学习shell编程的时候,被各种括号的用法搞得头昏脑涨。靠着逐步的熟悉和积累,才终于掌握的所有的括号的用法。现在,把自己总结出来的分享给大家。
注:看本篇文档的前提是你已经有了bash以及shell编程的基础。
单小括号()
但小括号常见的两个作用:命令替换以及数组的初始化
命令替换
当碰到$()结构时,shell就把括号的内命令执行,并返回结果
# tmp=$(date) # echo $tmp Fri Sep 18 10:22:30 CST 2020
初始化数组
# 初始化数组 lnmp=(linux nginx mysql php)
双小括号(())
记住双括号有一个特点,就是括号内的要符合c语言的语法,使用变量名时不需要加上$符号的。
双小括号的用法比较多,它可以用作整数计算(不支持小数)。例如:$((3+2))
# echo $((1+3)) 4 # n1=3 # echo $((n1+7)) 10
只要符合c语言语法的运算扩展,都可以写在括号里
# echo $((3+4>5 ? 1 :0)) 1 # echo $((3+4>9 ? 1 :0)) 0
重新给变量赋值,这个时候不可在括号外加$符
# i=1;((i++));echo $i; 2 # i=1;((i=100));echo $i; 100
双括号还经常用在for循环中
for ((i=0;i<5;i++));do echo -n $i;done
单方括号[]
单方括号最常见用于逻辑判断中,另外它还可以作为数组的下标,以及在正则中表示一段范围
shell脚本中用于条件判断:
if [ 1 > 2 ] then …… fi
也可以作为数组下标:
# echo ${lnmp[1]} nginx
在正则中使用,表示一段范围
[0-9] 表示数子0-9都行
双方括号
和单括号一样,双方括号也用在条件判断中,但它比单方括号更加的通用。下面举一个例子:
[ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ] 改成双括号 [[ a > b && a > 0 ]]
单花括号{}
花括号拓展。(通配(globbing))将对花括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。
比如输入命令 rm -f {1,2}.txt将删除1.txt和2.txt文件。
单花括号中..的作用
两个点在这里表示一段范围的意思。比如
echo {1..10} #将打印1,2,3,4,5,6,7,8,9,10
花括号还常用在shell脚本里,用于代码块。
初次之外,单花括号还可以用作变量内容的替换和删除以及变量内容的测试,给出一个常见的例子。我们常常会判断一个变量是否存在,如果不存在,则给该变量设置新值。
val=${n1:-test}
上面代码表示如果n1这个变量不存在或为空,则将val变量值设置为test,否则val值为n1变量的值
以上是全面整理linux下shell中各种括号的作用及用法的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Linux适用于服务器、开发环境和嵌入式系统。1.作为服务器操作系统,Linux稳定高效,常用于部署高并发应用。2.作为开发环境,Linux提供高效的命令行工具和包管理系统,提升开发效率。3.在嵌入式系统中,Linux轻量且可定制,适合资源有限的环境。

在Linux上使用Docker可以提高开发和部署效率。1.安装Docker:使用脚本在Ubuntu上安装Docker。2.验证安装:运行sudodockerrunhello-world。3.基本用法:创建Nginx容器dockerrun--namemy-nginx-p8080:80-dnginx。4.高级用法:创建自定义镜像,使用Dockerfile构建并运行。5.优化与最佳实践:使用多阶段构建和DockerCompose,遵循编写Dockerfile的最佳实践。

当 Apache 80 端口被占用时,解决方法如下:找出占用该端口的进程并关闭它。检查防火墙设置以确保 Apache 未被阻止。如果以上方法无效,请重新配置 Apache 使用不同的端口。重启 Apache 服务。

启动 Apache 的步骤如下:安装 Apache(命令:sudo apt-get install apache2 或从官网下载)启动 Apache(Linux:sudo systemctl start apache2;Windows:右键“Apache2.4”服务并选择“启动”)检查是否已启动(Linux:sudo systemctl status apache2;Windows:查看服务管理器中“Apache2.4”服务的状态)启用开机自动启动(可选,Linux:sudo systemctl

启动 Oracle 监听器的步骤如下:检查监听器状态(使用 lsnrctl status 命令)对于 Windows,在 Oracle Services Manager 中启动 "TNS Listener" 服务对于 Linux 和 Unix,使用 lsnrctl start 命令启动监听器运行 lsnrctl status 命令验证监听器是否已启动

本文介绍如何在Debian系统上有效监控Nginx服务器的SSL性能。我们将使用NginxExporter将Nginx状态数据导出到Prometheus,再通过Grafana进行可视化展示。第一步:配置Nginx首先,我们需要在Nginx配置文件中启用stub_status模块来获取Nginx的状态信息。在你的Nginx配置文件(通常位于/etc/nginx/nginx.conf或其包含文件中)中添加以下代码段:location/nginx_status{stub_status

本文介绍两种在Debian系统中配置回收站的方法:图形界面和命令行。方法一:使用Nautilus图形界面打开文件管理器:在桌面或应用程序菜单中找到并启动Nautilus文件管理器(通常名为“文件”)。找到回收站:在左侧导航栏中寻找“回收站”文件夹。如果找不到,请尝试点击“其他位置”或“计算机”进行搜索。配置回收站属性:右键点击“回收站”,选择“属性”。在属性窗口中,您可以调整以下设置:最大大小:限制回收站可用的磁盘空间。保留时间:设置文件在回收站中自动删除前的保

在Debian系统中,readdir系统调用用于读取目录内容。如果其性能表现不佳,可尝试以下优化策略:精简目录文件数量:尽可能将大型目录拆分成多个小型目录,降低每次readdir调用处理的项目数量。启用目录内容缓存:构建缓存机制,定期或在目录内容变更时更新缓存,减少对readdir的频繁调用。内存缓存(如Memcached或Redis)或本地缓存(如文件或数据库)均可考虑。采用高效数据结构:如果自行实现目录遍历,选择更高效的数据结构(例如哈希表而非线性搜索)存储和访问目录信
