shell中变量的命名、字符的转义、变量的声明以及变量值的传递

本文介绍了Shell编程中的基础知识,包括变量名称的规范,如只允许包含字母、数字和下划线,且不能以数字开头;字符的转义方法;系统变量的声明,如使用${}进行声明;以及变量值的传递技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.shell中变量名称的规范

变量名称中通常包含大小写字母,数字,下划线
不是变量名中同时需要具备字母、数字、下划线,变量名只能出现这三种字符
变量名不能以数字开头,只能以字母或者下划线开头

变量名称格式定义:
WESTOS_LINUX
Westos_Linux
westoS_Linux

在这里插入图片描述

2.字符的转译

\反斜杠转译单个字符
""双引号弱引用,批量转译 “” 中出现的字符
''单引号强引用,批量转译 ‘’ 中出现的字符
‘’ 与 “” 两者的区别在于“” 不能转译 " \ 反斜杠","`反向单引号","!感叹号","$"
\转义单个字符或者字符串
''强引用,也是转义,可以转移元字符
""弱引用,也是转义,不能转义元字符
元字符: *  #   ?   !  `` 这些字符都有自身的含义,需要转义

在这里插入图片描述

3.变量的声明(系统中存在的变量)

${}:变量声明

a=1在shell中直接定义a的值为1
echo $ab(默认会寻找ab这个整体的变量的值)
echo ${a}b这样才能声明a是变量
a=(1 2 3)定义一个数组
echo $a不可以
echo ${a[0]}输出数组的第一个元素
echo ${a[1]}输出数组的第二个元素
echo ${a[*]}输出数组的所有元素

在这里插入图片描述

4.变量值传递

$1脚本后的第一串字符串
$2脚本后的第二串字符串
$3脚本后的第三串字符串
$#脚本后所跟字符串的个数
$*脚本后跟的所有字符串,模式为“ 1 2 3 ”
$@脚本后跟的所有字符串,模式为“ 1”“2”“3”
$$当前进程的pid
vim test1.sh编辑测试文件

在这里插入图片描述

写入:
#!/bin/bash
echo \$0 is $0
echo \$1 is $1
echo \$2 is $2
echo \$3 is $3
echo \$# is $#
echo \$* is $*
echo \$@ is $@

在这里插入图片描述

sh test.sh
发现:
$0 是脚本名字

在这里插入图片描述

vim test.sh
加入echo \$\$ is $$

在这里插入图片描述

sh test.sh
ps发现没有pid
vim test1.sh

在这里插入图片描述

加入watch -n 1 date

在这里插入图片描述

chmod +x test.sh
/mnt/test.sh(sh test.sh)
ctrl+z
ps f 可以看出当前shell的pid
看到pid,发现$$是当前进程的pid
kill -9 pid就是关掉当前的shell

在这里插入图片描述

vim test1.sh
注释掉监控命令

在这里插入图片描述

/mnt/test.sh westos
$1是脚本后面的第一个字符
/mnt/test.sh westos linux
$2是脚本后面的第一个字符
/mnt/test.sh westos linux haha
$3是脚本后面的第一个字符
$#是脚本后面所跟字符的个数
$* 与 $@均是所有所跟字符(看起来作用一样,其实作用不一样)

在这里插入图片描述

 接下来解释$*与$@的区别
vim test1.sh编辑测试文件

在这里插入图片描述

写入:
for i in "$*"
do 
    echo  $i
done

在这里插入图片描述

sh test1.sh 1 2 3 
sh -x test1.sh 1 2 3 ($*代表只执行一次)
$*="1 2 3"

在这里插入图片描述

vim test1.sh编辑测试文件
for i in "$@"
do 
    echo  $i
done

在这里插入图片描述

sh test1.sh 1 2 3 4
sh -x test1.sh 1 2 3 4($@代表只执行四次)
$@="1" "2" "3" "4"

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值