shell编程之变量
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,shell编程之变量前言什么是shell变量?为什么需要shell变量?如何定义shell变量?本文主要带你了解shell变量的相关概念、shell变量的使用与作用等基础知识,适合初学者学习,了解。一
千家信息网最后更新 2024年11月28日shell编程之变量
shell编程之变量
前言
- 什么是shell变量?
- 为什么需要shell变量?
- 如何定义shell变量?
本文主要带你了解shell变量的相关概念、shell变量的使用与作用等基础知识,适合初学者学习,了解。
一、shell变量的概念
各种shell环境中都属于到了"变量"的概念。shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而变化。通过使用变量,shell程序可以提供更加灵活的功能,适应性更强。
常见的shell变量的类型包括自定义变量、环境变量、位置变量、预定义变量。
1、自定义变量
系统用户自己定义,只在自己的shell环境中有效。
下面通过实例来解释如何定义新的变量,如何查看和引用变量以及变量赋值的特殊操作。
[root@localhost shell]# Value=tome[root@localhost shell]# Version=6.0[root@localhost shell]# echo $V$Value $Version [root@localhost shell]# echo $Value tome[root@localhost shell]# echo $Version 6.0[root@localhost shell]# echo $Version4.5.5[root@localhost shell]# echo ${Version}4.56.04.5//以上是变量定义与查看操作//下面是变量赋值特殊操作[root@localhost shell]# vlan=vlan 5.0bash: 5.0: 未找到命令...[root@localhost shell]# vlan="vlan 5.0" //双引号[root@localhost shell]# echo $vlan vlan 5.0[root@localhost shell]# ss=8.8[root@localhost shell]# qq="QQ $ss"[root@localhost shell]# echo $qqQQ 8.8[root@localhost shell]# qq='QQ $ss' //单引号[root@localhost shell]# echo $qqQQ $ss[root@localhost shell]# ls -lh `which useradd` //反撇号(esc下方按键)-rwxr-x---. 1 root root 116K 11月 6 2016 /sbin/useradd[root@localhost shell]# read hehe //从键盘输入123[root@localhost shell]# echo $hehe 123
设置变量的作用范围,export设置全局变量,bash可以进入子shell中。
[root@localhost shell]# echo $hehe 123[root@localhost shell]# bash //进入子shell中[root@localhost shell]# echo $hehe //无法调用父shell变量[root@localhost shell]# exit //返回父shell中exit[root@localhost shell]# echo $hehe 123[root@localhost shell]# export hehe //定义全局[root@localhost shell]# bash[root@localhost shell]# echo $hehe123
下面来介绍一下数值变量的运算
shell变量的数值运算多用于脚本程序的过程控制(如循环次数、使用量比较等)。在Bash Shell环境中,只能进行简单的整数运算,不支持小数运算。
(1)加法运算:+
(2)减法运算:-
(3)乘法运算:*(需要转义)
(4)除法运算:/
(5)求模(取余)运算:%
运算实例:
[root@localhost shell]# X=36[root@localhost shell]# Y=33[root@localhost shell]# expr $X + $Y69[root@localhost shell]# expr $X - $Y3[root@localhost shell]# expr $X \* $Y1188[root@localhost shell]# expr $X / $Y1[root@localhost shell]# expr $X % $Y3
2.特殊变量
(1)环境变量--可以修改
[root@localhost shell]# envXDG_SESSION_ID=11HOSTNAME=localhost.localdomainTERM=xtermSHELL=/bin/bashHISTSIZE=1000USER=rootLS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binMAIL=/var/spool/mail/rootPWD=/root/shellLANG=zh_CN.UTF-8HISTCONTROL=ignoredupsHOME=/rootSHLVL=2LOGNAME=rootXDG_DATA_DIRS=/root/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/LESSOPEN=||/usr/bin/lesspipe.sh %shehe=123XDG_RUNTIME_DIR=/run/user/0_=/bin/env[root@localhost shell]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
(2)位置变量 --为程提供操作参数。使用$n(n范围(1~9))
[root@localhost shell]# vim add2.sh[root@localhost shell]# cat add2.sh #!/bin/bashsum=`expr $1 + $2`echo "$1 + $2 = $sum"echo $sum[root@localhost shell]# ./add2.sh 2 32 + 3 = 55
(3)预定义变量--只能使用无法更改的变量
$#--命令行中位置参数的个数
$*--所有位置参数的内容
$?--前一条命令执行后的状态,返回0表示正确,反之错误。
$0--脚本名称
变量
运算
环境
参数
位置
特殊
命令
概念
用户
系统
作用
全局
实例
引号
数值
程序
脚本
范围
变化
编程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
60数据库技术入股
软件开发的实训报告
常州mes软件开发
网络安全相关的技术
服务器如何禁用所有木头以及树苗
在迪拜做网络安全吗
系统网络安全数据库
哈尔滨靠谱上位机软件开发
霸气网络安全公文语
设计短信服务器
郑州工控软件开发哪里好
武汉软件开发
原神能不能跨服务器组队
电子商务面临的网络安全问题
徐汇区创新软件开发销售电话
绍兴互联网涵信科技钱周铭
岳麓区软件开发公司多吗
湖北前端软件开发价钱
菏泽华为5g网络技术
家具出口数据库
芜湖管理软件开发公司哪家比较好
海量文档数据库
基础与网络技术
夏邑脸谱互联网科技有限公司
邵东软件开发有限公司
机架式服务器导轨安装
方舱医院服务器设备招标
数据库语言包括
服务器登录页面怎么重启
傲视遮天数据库