Shell学习(二):Shell中的变量

简介: Shell学习(二):Shell中的变量

一、系统变量



常用的系统变量有: $HOME、$PWD、$SHELL、$USER等


查看系统变量:

34f76b76463d486d8aa6d8a6b73d9551.png


二、自定义变量



1.基本语法


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

(2)撤销变量:unset 变量

(3)声明静态变量:readonly变量,注意:不能unset


2.变量定义规则

       

(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。

       

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


(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。

       

(4)变量的值如果有空格,需要使用双引号或单引号括起来。


三、位置参数变量



1、$n

       

功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}


2、$*、$@

     

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

       

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


3、$#

       

功能描述:获取所有输入参数个数,常用于循环


4、实例


1. #!/bin/bash
2. echo "1=$1 2=$2 3=$3"
3. echo "所有的参数=$*"
4. echo "$@"
5. echo "参数的个数=$#"


9e618ecbb2ec45aeb0728c63d8817e08.png


四、预定义变量



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


1、$$

     

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


2、$!

     

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


3、$?

     

功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。


4、实例


#!/bin/bash
echo "当前执行的进程id=$$"
#以后台的方式运行一个脚本,并获取他的进程号
/root/shcode/myshell.sh &
echo "最后一个后台方式运行的进程id=$!"
echo "执行的结果是:$?"


d4fe8af372914d13903d825e4200997a.png


相关文章
|
3月前
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
31 0
|
3月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
88 12
|
4月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
4月前
|
Java Shell Linux
Shell 变量设置
Shell设置变量
58 5
|
4月前
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
35 0
|
5月前
|
Shell
[shell]在curl测试的data参数中引用变量
[shell]在curl测试的data参数中引用变量
255 1
|
6月前
|
分布式计算 大数据 Shell
MaxCompute产品使用合集之odps shell如何将ech变量的结果集合写入文件,并且指定服务器的位置
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
53 10
|
6月前
|
Shell Linux
Shell 脚本编程学习
Shell 脚本编程学习
44 0
|
6月前
|
Shell Linux
Linux环境变量之shell中export定义全局变量和echo 变量的区别
Linux环境变量之shell中export定义全局变量和echo 变量的区别
|
7月前
|
人工智能 运维 中间件
Linux-shell简单学习
Linux-shell简单学习
39 0