2、shell编程之变量

 

shell的变量的介绍

(1)、Linux shell中的变量分为:系统变量和用户自定义变量

(2)、系统变量:$HOME、$PWD、$SHELL、$USER等

例如:echo $HOME

 

 (3)、显示当前shell中所有的变量:set

set | more

 

shell 变量的定义

  • 基本语法:

(1)、定义变量:变量=值

(2)、撤销变量:unset 变量

(3)、声明静态变量:readonly变量

   注意:不能unset

  • 入门案例:

(1)、定义变量A

A=100

echo “A=$A”

(2)、撤销变量A

unset A

echo “A=$A”

 

 (3)、声明静态变量B=2,静态变量不能unset

readonly B=2

echo "B=$B"

(4)、可把变量提升为全局环境变量,可供其他shell程序使用

export

 

变量定义规则

(1)、变量名称可以由字母、数字、下划线组成,但不能以数字开头

(2)、等号两侧不能有空格

(3)、变量名称一般习惯为大写

将命令的返回值赋给变量(重点)

(1)、A=`ls -la ``反引号(esc下面的键),运行里面的命令,并把结果返回给变量A

(2)、A=$(ls -la)等价于反引号(推荐使用)

设置环境变量

  • 基本语法:

(1)、export 变量名=变量值(功能描述:将shell变量输出为环境变量)

(2)、source 配置文件 (功能描述:让修改后的配置信息立即生效)

(3)、echo $变量名 (功能描述:查询环境变量的值)

  • 入门案例:

(1)、在/etc/profile 文件中定义TOMCAT_HOME环境变量

vim /etc/profile

TOMCAT_HOME=/opt/tomcat

export TOMCAT_HOME

source /etc/profile

shell多行注释::<<! !

(2)、查看环境变量TOMCAT_HOME的值

echo TOMCAT_HOME

(3)、在另外一个shell程序中使用TOMCAT_HOME

vim myshell.sh

echo "TOMCAT_HOME=$ echo TOMCAT_HOME"

注意:在输出JAVA_HOME环境变量前,需要让其生效

source /etc/profile

 

位置参数变量

  • 介绍:

当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置

参数变量,例如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以再myshell

脚本中获取到参数信息

  • 基本语法:

$n(功能描述:n为数字,$0代表命令本身,$1-$9代表第一到到第九个参数,十以上的

参数需要用大括号包含${10})

$*(功能描述:代表命令行中所有的参数,$ *把所有的参数看成一个整体)

$@(功能描述:代表命令行中所有的参数,不过$@把每个参数区分对待)

$#(功能描述:代表命令行中所有参数的个数)

  • 实例:

编写一个shell脚本,positionPara.sh,在脚本中获取命令行的各个参数信息

vim positionPara.sh

#!/bin/bash

echo "$0 $1 $2"

echo "$*"

echo"$@"

echo "参数个数=$#"

分配权限:chomd 544 positionPara.sh

./positionPara.sh 30 60

输出效果:

 

 

预定义变量

Shell设计者事先已经定义好的变量,可以直接在shell脚本中使用

  • 基本语法:

$ $(功能描述:当前进程的进程号(PID))

$!(功能描述:后台运行的最后一个进程的进程号)

$?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个

命令正确执行;如果这个变量的值为非0,证明上一个命令执行不正确)

  • 实例:

在一个shell脚本中简单使用一下预定义变量

vim prePar.sh

#!/bin/bash

echo "当前的进程号=$$"

#后台的方式运行myshell.sh

./myshell.sh &

echo "最后一个进程的进程号=$!"

echo"执行的值=$?"

分配执行权限:chmod 744 prePar.sh

./ prePar.sh

 

 

posted @   拾柴慢热  阅读(143)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示