首页 > 系统相关 >Shell笔记:括号( ) 与 双括号 (( ))

Shell笔记:括号( ) 与 双括号 (( ))

时间:2024-01-21 11:35:01浏览次数:31  
标签:Shell 获取 笔记 echo 括号 数组 array my

括号( )

单括号 (...) 常用的用法有两种,一种是用于shell中的数组,一种是获取命令执行后的结果。

1. 数组: 括号 ( ) 最直观的使用当然是数组,因为shell中数组的定义就是 array_name=(value1 value2 ...) ,这里只列一些基础的使用示例:

#!/bin/sh

# 数组定义
my_array=("a" "b" "c")
# 根据下标获取数组元素
echo ${my_array[0]}
echo ${my_array[1]}
# 获取数组所有元素
echo ${my_array[*]}
# 获取数组长度
echo ${#my_array[*]}

# 通过下标直接定义数组
new_array[0]="D"
new_array[1]="E"
new_array[2]="F"
# 打印数组所有元素
echo ${new_array[*]}

输出如下:

a
b
a b c
3
D E F

2. 执行命令: 括号 ( ) 另外一种非常常用的用法是使用语法 $(...) 执行命令,然后获取命令的执行结果。

# 执行单个命令
now_date=$(date)
echo ${now_date}

# 多个命令一起执行,获取最后的执行结果
current_path=$(cd $(dirname ${0});pwd)
echo ${current_path}

输出:

Fri Nov 25 01:23:55 CST 2022
/root/shell_test

双括号(( ))

需要特别注意,双括号 (( ))是用于整数运算的,不能用于其他类型数据的运算,并且 (( )) 中使用的变量可以直接使用名称,而不用加 $ 符号。常用的用法有两种,一种是获取整数计算表达式的值,另一种就是作为if语句的判断表达式。

1. 获取整数计算值: 可以使用 $(( ... )) 的方式获取整数计算表达式的值。示例:

#!/bin/sh

a=2
b=3
# 直接使用变量名称进行计算
c=$((a+b))
# 输出结果:5
echo ${c}

2. if条件判断: 作为条件判断时,同样可以使用 +、-、*、/、%、==、!= 等算术运算符,如果想要多个表达式一起判断,也可以使用 &&、|| 逻辑运算符。示例如下:

#!/bin/sh

a=2
b=3
c=6
if ((a<b && a+b<c)); then
    echo "YES"
fi

标签:Shell,获取,笔记,echo,括号,数组,array,my
From: https://www.cnblogs.com/guyuyun/p/17977636

相关文章

  • Shell笔记:中括号[ ] 与 双中括号[[ ]]
    []和[[]]这两者最常用的用法就是用作条件判断,用作条件判断时,推荐使用双中括号[[]]的方式。需要特别注意,使用时符号边界处和操作符两边都必须要要有空格,如[[a>b]]。这里列出一些使用它们时的不同之处(了解之后就知道为什么推荐使用[[]]了):符号性质[]是bash的......
  • Shell笔记:字符串基础使用
    对于字符串变量的使用,需要加上$进行引用,特别是在[[]]中作为条件判断时没有使用$的话,无法进行正确的判断。1.判断两个字符串是否相同在[[]]使用=、==、!=判断两个字符串是否相等,如果不确定变量的数据类型,但是想要将其转换为字符串再进行比较,可以在变量外边包裹......
  • Shell笔记:变量基础使用
    语法:为my_var="hello",此处定义了一个值为字符串的变量,需要特别注意的是,等号=两边不能有空格。变量的命名只能使用英文字母,数字和下划线,且首个字符不能以数字开头。变量定义之后也可以在其他地方使用同样的语法给它重新赋值,但是注意,不可以使用$my_var="hi"这种语法,加花括号是......
  • Shell笔记:函数基础使用
    语法如下:[function]func_name(){...[returnint]}function关键字:定义一个函数,function关键字是可选的。语句结束符:函数中每个语句以换行符作为结束,不用使用分号,一行一句即可,分号通常只是用于连接两个语句。return关键字:也是可选的,不指定时自动使用最后一个语句的......
  • NCL论文阅读笔记
    ImprovingGraphCollaborativeFilteringwithNeighborhood-enrichedContrastiveLearning论文阅读笔记Abstract​ 目前的对比方法通常采用随机抽样的方式构建对比对,忽略了用户之间的相邻关系,不能充分利用对比学习作为推荐的潜力​ 为了解决上面的问题,我们提出了一种新的对......
  • 如何使用Markdown编写笔记
    Markdown是什么?Markdown是一种轻量级标记语言,创始人为约翰·格鲁伯(JohnGruber)。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。由于Markdown的轻量化、易读易写特性,并且对于图片......
  • 【数字图像处理_冈萨雷斯】笔记:(一)绪论
    一、绪论1.图像处理分类:低级处理(输入输出都是图像,如降噪、对比度增强、锐化)中级处理(输入图像输出特征,如分割、分类、识别)高级处理(远端位置识别、视觉认知)2.数字图像处理诞生可追溯至20世纪60年代,得益于机器使用和空间项目开发计算机断层成像CT和X射线是数字图......
  • 完全没有数模基础都能看懂的神经网络笔记【零基础系列】
    神经网络算法前言(可跳过)作为数模小白,看了很多讲解新概念新模型的文章,这些文章往往要么讲的很浅不讲原理只讲应用,让人知其然不知其所以然。要么讲的很深小白看不懂,同时总是忽略关键部分,经常性引入陌生概念让初学者疑惑,因此有了本文,任何能熟练掌握线性代数知识且逻辑思维能力尚可......
  • (powershell 7) 安装及 Pycharm 上的配置
    1.windows上更新powershell下载地址(此处需要爬下墙): https://github.com/PowerShell/PowerShell选择一个LTS版本直接手动安装,完成完成后,会自动添加到PATH中,如果没有,可以手动配置#打开powershell$PSVersionTable.PSVersion 2.Pycharm配置powershell Note......
  • [SQLAlchemy] SQLAlchemy学习笔记: 基础使用
    InstallationpipinstallSQLAlchemymakesurethatissql-alchemy2创建引擎数据库url格式一般为dialect+driver://username:password@host:port/database#PyMySQL-python里的数据库驱动engine=create_engine("mysql+pymysql://scott:tiger@localhost/foo?charset=utf......