shell变量以及如何使用变量

简介:

SHELL变量


变量 (内存空间)

增加脚本的灵活性, 适用性 



类型:


自定义变量

环境变量(PATH)

特殊变量



自定义变量 


声明变量


# 变量名称=变量值


变量名称规范:

只能由数字、字母、下划线组成 

不能以数字开头 


[root@shell ~]# name=tom



2 调用变量的值

$变量名称

${变量名称} 变量名称后紧跟数字, 字符的时候


[root@shell ~]# name=cat


[root@shell ~]# echo "This is a $name"

This is a cat


[root@shell ~]# echo "There are some ${name}s"

There are some cats


SHELL变量的值默认全都作为字符处理


[root@shell ~]# a=10

[root@shell ~]# b=20

[root@shell ~]# c=a+b

[root@shell ~]# echo $c

a+b

[root@shell ~]# c=$a+$b

[root@shell ~]# echo $c

10+20

[root@shell ~]# 


3 如何使用变量的值作数学运算 


方法1: $((EXPRESSION))


[root@shell ~]# a=10

[root@shell ~]# b=20

[root@shell ~]# c=$((a+b))

[root@shell ~]# echo $c

30

[root@shell ~]# 



方法2: 关键字  let  


[root@shell ~]# a=10

[root@shell ~]# b=20

[root@shell ~]# let c=a+b

[root@shell ~]# echo $c

30

[root@shell ~]# 



方法3: 关键字  declare 


[root@shell ~]# a=10

[root@shell ~]# b=20

[root@shell ~]# declare -i c=a+b

[root@shell ~]# echo $c

30

[root@shell ~]# 



数学运算符: 

+

-

*

/ 整除

% 取余



生成10以内的随机数        echo $RANDOM   ------> 生成随机数


[root@shell ~]# echo $((RANDOM%10))

9

[root@shell ~]# echo $((RANDOM%10))

8

[root@shell ~]# echo $((RANDOM%10))

4

[root@shell ~]# echo $((RANDOM%10))

5



4 命令引用 


反引号 `COMMAND`

$(COMMAND)


[root@shell ~]# a=`ls -ldh /etc/`

[root@shell ~]# echo $a

drwxr-xr-x. 65 root root 4.0K 11月 20 16:32 /etc/

 

[root@shell ~]# b=$(ls -ldh /etc/)

[root@shell ~]# echo $b

drwxr-xr-x. 65 root root 4.0K 11月 20 16:32 /etc/

[root@shell ~]# 



5 删除变量 


# unset 变量名称



环境变量 


1) 查看环境变量 


[root@shell ~]# env

HOSTNAME=shell.linux.com

TERM=xterm

SHELL=/bin/bash

HISTSIZE=1000

SSH_CLIENT=192.168.122.1 44503 22

SSH_TTY=/dev/pts/0

USER=root



2) 定义环境变量, 修改环境变量的值


# export 变量名称=变量值


/etc/profile

/etc/bashrc





3) 特殊变量   $$   -----> shell本身的PID  

                           $! -----> shell最后运行的后台process的PID 

                           $0  -----> shell本身的参数个数   

                           $1~$n  ----> 添加到shell的各参数值。$1是第一个参数,依次排

                   $? 代表上一条命令的执行状态

                           0---255

                           0 执行成功











本文转自 北冥有大鱼  51CTO博客,原文链接:http://blog.51cto.com/lyw168/1957403,如需转载请自行联系原作者
目录
相关文章
|
Shell Python
python 和shell 变量互相传递
python 和shell 变量互相传递
272 0
|
7月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
637 2
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
224 1
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
Java Shell Linux
Shell 变量设置
Shell设置变量
258 5
|
分布式计算 大数据 Shell
MaxCompute产品使用合集之odps shell如何将ech变量的结果集合写入文件,并且指定服务器的位置
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
268 10
|
Shell
[shell]在curl测试的data参数中引用变量
[shell]在curl测试的data参数中引用变量
790 1
|
Shell Linux Perl
Linux|如何允许 awk 使用 Shell 变量
Linux|如何允许 awk 使用 Shell 变量
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
164 0