Shell脚本之$符号大家族

一、脚本参数

$0:获取该bash文件的文件名
$n:获取传递给该脚本的第n个参数
$#:获取传递给该脚本的参数个数
$*:以字符串形式展示传递给该脚本的所有参数
$@:以数组形式展示传递给该脚本的所有参数

#!/bin/bash
echo "查看shell脚本中的参数"
echo "目前正在执行的脚本的名字是:$0"
echo "获取到的第一个参数是:$1"
echo "获取到的第二个参数是:$2"
echo "获取到的第三个参数是:$3"
echo "该脚本参数个数:$#"
echo '演示$#$@的区别'
echo '------------展示$*-------------'
for i in "$*";do
   echo $i
done
echo '------------展示$@-------------'
for i in "$@";do
   echo $i
done

在这里插入图片描述

二、获取变量的值

$开头的字符串表示变量,可以是自己定义,也可以是系统定义
自己定义变量小写,系统的全部大写

#展示变量的值
num=2
#$num的结果
echo $num
#${num}的结果
echo ${num}

在这里插入图片描述

${num}可以指定变量边界
假设有个变量:file=/dir1/dir2/dir3/my.file.txt

代码介绍结果
${file#/}删掉第一个/ 及其左边的字符串dir1/dir2/dir3/my.file.txt
${file##*/}删掉最后一个/ 及其左边的字符串my.file.txt
${file#*.}删掉第一个. 及其左边的字符串file.txt
${file##*.}删掉最后一个. 及其左边的字符串txt
${file%/*}删掉最后一个 / 及其右边的字符串/dir1/dir2/dir3
${file%%/*}删掉第一个/ 及其右边的字符串(空值)
${file%.*}删掉最后一个 . 及其右边的字符串/dir1/dir2/dir3/my.file
${file%%.*}删掉第一个 . 及其右边的字符串/dir1/dir2/dir3/my

插入图片描述

三、命令替换

$()和``是一样的,用于命令替换,既把一个命令的输出嵌入到另一个命令中

在这里插入图片描述

$()可以多次嵌套使用,``不支持多层嵌套,相对来说$()更直观,推荐!

在这里插入图片描述

四、算术运算

$[],$(()),(())都可以进行算术运算,在其内部使用变量都不需要添加$

  • $(())支持 ++、–、&&、|| 等运算符,$[]不支持这些操作
  • (())也支持自增自减操作,除此之外还可以在 if、while 、for中作为条件表达式。
a=5
((a++))  # 等价于 a=$((a + 1))
echo $a  # 输出: 6

i=1
while ((i <= 3)); do
    echo "$i"
    ((i++))
done

条件表达式还可以使用[],[[]]。这两个还需要将变量用 $ 引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

buleMoMo大军之一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值