首页 > 系统相关 >Linux——shell变量及运算

Linux——shell变量及运算

时间:2023-08-15 18:34:25浏览次数:42  
标签:arr shell 运算 打印 echo hh let Linux 字符串

# 注意等号两边不能有空格,命令才会有空格,像是 docker ps,如果加空格,linux 以为你写的是某种命令。

# 数字
num=1

# 字符串
str0=test
str1='test'
str2="test"

# 字符串的三种声明方式是有区别的:
# 1. 单引号中的内容回原样输出,不会转义,不会取值。
# 2. 双引号中的内容输出,会转义,会取值。
# 3. 没有引号 和 双引号效果一样。
echo 'hello,\"hh\"';echo "hello,\"hh\"";echo hello,\"hh\";

# 数组
arr=(1 abc)

# 声明数组,第一个元素改成2,打印第一个元素,打印全部元素
arr=(1 abc);arr[0]=2;echo ${arr[0]};echo ${arr[*]};

字符串拼接

在linux下,字符串的声明可以不要引号,第一次学习很容易产生歧义。


# 下面两种写法效果是完全一样的
a=3;b=4;a=$a$b;echo $a;
a=3;b=4;a="$a$b";echo $a;

# 在做数字计算的时候,很容易发生的错误,最后会打印字符串:3+4
a=3;b=4;a=$a+$b;echo $a;

# 用不同方式声明的字符串,是可以进行拼接的
echo 'date'"end";
a=3;echo $a"str";

运算

用于数字计算,只要记住下面两种,一定要注意关键字的使用,少了就变成字符串拼接了。

# 用 let 关键字
a=3;b=4;let c=$a+$b;echo $c
# 用美元符
a=3;b=4;c=$(($a+$b));echo $c

面试可能会遇到,加深一下记忆

# 打印 4
a=3;b=4;a=$b;echo $a
# echo缺少美元符,打印 c
a=3;b=4;let c=$a+$b;echo c
# 打印 7
a=3;b=4;let c=$a+$b;echo $c
# 打印 3+7
a=3;b=4;c=$a+$b;echo $c
# 打印 7
a=3;b=4;c=$(($a+$b));echo $c
a=3;b=4;c=`$a+$b`;echo $c
# 打印 3+4
a=3;b=4;c=`expr $a+$b`;echo $c
# 打印 7
a=3;b=4;let c=`expr $a+$b`;echo $c

标签:arr,shell,运算,打印,echo,hh,let,Linux,字符串
From: https://www.cnblogs.com/chenss15060100790/p/17632104.html

相关文章

  • Linux——文件授权
    文件授权chmod-R777[path]chmod-R755[path]一般用的到也就是777、755、644这三种权限。数字有3位,位数表示不同角色:第1位表示所有者,第2位表示同组用户,第3位表示公共用户,数字的具体含义:r代表读取权限等于4,w代表写入权限等于2,x代表执行权限......
  • Linux专栏(二):创建虚拟机与Ubuntu安装
    文章目录1下载Ubuntu20.04镜像2创建虚拟机3安装Ubuntu系统本文将介绍在VMware中如何创建虚拟机并安装Ubuntu20.04系统1下载Ubuntu20.04镜像下载地址:Ubuntu官网镜像下载2创建虚拟机Step1:打开上文Linux专栏(一)——VMware的下载与安装下载的VMware,点击创建虚拟机,后在弹窗中默认......
  • Linux的ElasticSearch安装部署
    简介全文搜索属于最常见的需求,开源的Elasticsearch(以下简称es)是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、StackOverflow、Github都采用它。Elasticsearch简称es,在企业内同样是一款应用非常广泛的搜索引擎服务。很多服务中的搜索功能,都......
  • Linux之脚本的函数数组
    目录一、shell函数1.1函数的定义二、数组三、冒泡一、shell函数将命令序列按格式写在一起可方便重复使用命令序列shell函数的定义调用函数的方法注意事项直接写函数中调用函数直接写函数名同名函数后一个生效调用函数一定要先定义只要先定义了调用的其他......
  • shell函数与数组
    目录shell函数与数组shell函数函数定义函数递归阶乘题目shell数组冒泡排序shell函数与数组shell函数函数定义将命令序列按格式写在一起可方便重复使用命令序列shell函数定义使用函数可以将大模块分割成小模块函数的组成:函数名、函数体[root@localhost~]#helpfuncti......
  • Linux之信号
    信号集类型sigset_t定义typedefstruct{unsignedlongsig[_NSIG_WORDS];}sigset_t相关函数sigemptyset(sigset_t*set) //初始化由set指定的信号集,信号集里面的所有信号被清空sigfillset(sigset_t*set) //调用该函数后,set指向的信号集中将包含linux支持的64种......
  • 鸟哥的Linux私房菜服务器架设篇
    第七章:网络安全与主机基本防护1、了解数据包的流向、然后根据该流向制定系统强化的流程;2、数据包进入主机的流程: 3、linux防火墙机制默认有两层:   a、第一层是数据包过滤式的IPFilter/Netfilter防火墙;   b、第二层是软件管理的superdaemon/TCPWrappers;4、常见的攻......
  • linux中find命令用法
    1、find test   在当前工作目录中查找名称为test的所有文件2、find/home-nametest  查找/home目录下的所有文件,名称为test3、find/home -inametest   找到名称为test的所有文件,并在/home目录中同时包含大写和小写字母4、find/-typed-nametest   在/......
  • linux jdk 不生效解决方法
    1.安装jdk1.8。2.修改/etc/profile中的JAVA_HOME为新的jdk路径,并执行source/etc/profile。3.执行java-version,这个时候显示jdk还是1.7版本。4.执行:whichjavawhichjavac  将以上两条指令执行结果中的java、javac文件删除。5.执行:ln-s$JAVA......
  • Linux的Redis安装部署
    简介redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。redis的特点就是:快,可以基于内存存储数据并提供超低延迟、超快的检索速度一般用于在系统中提供快速缓存的能力。安装配置EPEL仓库EPEL的全称叫ExtraPackagesforEnt......