Linux——shell变量及运算

# 注意等号两边不能有空格,命令才会有空格,像是 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

posted on 2023-08-15 18:16  疯狂的妞妞  阅读(38)  评论(0编辑  收藏  举报

导航