shell脚本编程学习笔记2(xdl)——Bash变量

本文介绍了Bash脚本编程中的变量概念及其使用方法,包括变量设置规则、变量分类、环境变量设置及位置参数变量实例等内容。

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

    shell脚本编程学习笔记2——Bash变量

1,变量简介

1,计算机内存单元

2,设置规则
    字母数组下划线组成,不能以数字开头
    Bash中,默认类型字符串型,变量类型可修改

2,Bash变量规则

1,变量用等号连接值,等号左右两侧不能有空格。 (Linux中空格代表命令之间的区分)
2,变量的值如果有空格,需要使用单引号或双引号包括。
3,在变量的值中,可以使用“\”转义符
4,如果需要变量拼接,那么可以进行变量值的叠加。不过变量需要用双引号包含 “$变量名”或用${变量名}包含。 
5,如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令
6,环境变量名建议大写,便于区分

3,变量分类

1,用户自定义变量,保存环境当前shell
2,环境变量,主要保存和系统操作环境相关数据
3,位置参数变量,主要用来向脚本传递数据,不可自定义,作用固定
4,预定义变量,Bash中定义好的变量,变量名不可自定义,作用固定

1,用户自定义变量

1,简介

在本地定义的变量,只适用于当前shell

2,简单实例:

    [root@iZwz9h901rvv69020rk7fsZ sh]# name="dun huang"
    [root@iZwz9h901rvv69020rk7fsZ sh]# echo "$name"
    dun huang
    [root@iZwz9h901rvv69020rk7fsZ sh]# name="$name"' de tuo ling'
    [root@iZwz9h901rvv69020rk7fsZ sh]# echo "$name"
    dun huang de tuo ling
    [root@iZwz9h901rvv69020rk7fsZ sh]# 

3,操作:

    变量调用 [root@localhost ~]# echo $name
    变量查看 [root@localhost ~]# set
    变量删除 [root@localhost ~]# unset name 

2,环境变量

1,简介

用户自定义变量只在当前的Shell中生效, 而环境变量会在当前Shell和这个Shell的所 有子Shell当
中生效。如果把环境变量写入 相应的配置文件,那么这个环境变量就会 在所有的Shell中生效 

2,设置

export 变量名=变量值      # 申明变量
env                     # 查询变量
unset 变量名           # 删除变量

注意:系统常见环境变量
    1,$PATH
        [root@localhost ~]# echo $PATH /usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin: /sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    2,PS1
        PS1:定义系统提示符的变量 
        \d:显示日期,格式为“星期 月 日” 
        \h:显示简写主机名。如默认主机名“localhost” 
        \t:显示24小时制时间,格式为“HH:MM:SS” 
        \T:显示12小时制时间,格式为“HH:MM:SS” 
        \A:显示24小时制时间,格式为“HH:MM” 
        \u:显示当前用户名 
        \w:显示当前所在目录的完整名称 
        \W:显示当前所在目录的最后一个目录 
        \#:执行的第几个命令 
        \$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户 会显示提示符为“$

3,实例

[root@localhost ~]# PS1='[\u@\t \w]\$ ' 
[root@04:50:08 /usr/local/src]#PS1='[\u@\@ \h \# \W]\$‘ 
[root@04:53 上午 localhost 31 src]#PS1='[\u@\h \W]\$ '

3,位置参数变量

1,简介

$n      n为数字,$0代表命令本身,$1-$9代表第一 到第九个参数,十以上的参数需要用大括号 包含,如${10}. 
$*      这个变量代表命令行中所有的参数,$*把所 有的参数看成一个整体 
$@      这个变量也代表命令行中所有的参数,不过 $@把每个参数区分对待 
$#      这个变量代表命令行中所有参数的个数

2,实例

#!/bin/bash 
num1=$1 
num2=$2 sum=$(( $num1 + $num2)) 
# 变量 sum 的和是 num1 加 num2 
echo $sum 
# 打印变量sum 的值


#!/bin/bash 
echo "A total of $# parameters" 
# 使用 $# 代表所有参数的个数
echo "The parameters is: $*" 
# 使用 $* 代表所有的参数
echo "The parameters is: $@" 
# 使用 $@ 也代表所有参数



#!/bin/bash 
for i in "$*" 
#$* 中的所有参数看成是一个整体,所以这个 for 循环只会循环一次
     do                 
        echo "The parameters is: $i"         
     done 
x=1 
for y in "$@" 
#$@ 中的每个参数都看成是独立的,所以“ $@ ”中有几个参数,就会循环几次
     do                 
        echo "The parameter$x is: $y"                 
        x=$(( $x +1 ))         
     done 

4,预定义变量

1,简介

$? 最后一次执行的命令的返回状态。如果这个变 量的值为0,证明上一个命令
    正确执行;如果 这个变量的值为非0(具体是哪个数,由命令 自己来决定),则证明上一个命令执行不正确 了。 
$$  当前进程的进程号(PID) 
$!  后台运行的最后一个进程的进程号(PID)

2,实例

#!/bin/bash 
echo "The current process is $$" 
# 输出当前进程的 PID 。
# 这个 PID 就是 variable.sh 这个脚本执行时,生成的进程的 PID   find /root -name hello.sh & 
# 使用 find 命令在 root 目录下查找 hello.sh 文件
# 符号 & 的意思是把命令放入后台执行,工作管理我们在系统管理章节 会详细介绍
 echo "The last one Daemon process is $!"

3,接受键盘输入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值