shell 变量介绍
变量命名规则
变量名必须以字母或下划线开头,名字中间只能由字母,数字和下划线组成,大小写是区分的
变量名的长度不得超过255个字符
变量名在有效的范围内必须是唯一的
在Bash中,变量的默认类型都是字符串类型
"用户自定义变量"
变量自定义的
"环境变量"
这种变量中主要保存的是和操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
"位置参数变量"
这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
"预定义变量"
是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
"可以将一个命令的执行结果赋值给变量,但是需要使用命令替换符号"
[root@ssgao shell]# cat start.sh
#!/bin/bash
echo 'ssgao ai xiaoxiao'
mypath=`pwd` //使用命令替换符,或来获取命令执行结果
echo $mypath
[root@ssgao shell]# cat pwd.sh
#!/bin/bash
mypath=$(pwd) //使用$()来获取命令执行结果
echo $mypath
[root@ssgao shell]# sh pwd.sh
/root/shell
"注意单引号和双引号的区别"
注意单引号和双引号的区别,""号会把里面的变量值进行输出,''是把内容原封不动的输出,不会识别里面的变量。
[root@ssgao shell]# cat start.sh
#!/bin/bash
echo 'ssgao ai xiaoxiao'
mypath=`pwd`
touch log.log
ifconfig >log.log
patha="当前路径:${mypath}"
pathb='当前路径: ${mypath}'
echo $mypath //输出:/root/shell
echo $patha //输出:当前路径:/root/shell
echo $pathb //输出:当前路径: ${mypath}
自定义变量
'变量名=变量值'
1) 变量不能使用数字开头
2) '='左右两侧不能加空格:
name="jie cao" //变量值有空格需要用""括起来
"变量调用"
echo $变量名 //调用变量,在变量名前面加'$'符号
192:~ aouo$ y=6 //声明变量
192:~ aouo$ x=5 //声明变量
192:~ aouo$ z=$x+$y //调用变量x和变量y
192:~ aouo$ echo $z //结果为5+6
"变量的叠加"
x=123
x="$x"456
x=${x}456
-----------------
192:~ aouo$ x=123
192:~ aouo$ echo $x // 结果为123
192:~ aouo$ x="$x"456
192:~ aouo$ echo $x //结果为123456
"查看所有变量"
[root@ssgao shell]# set
STORM_HOME=/root/storm/apache-storm-1.1.1
TERM=xterm
UID=0
USER=root
"删除变量"
unset 变量名
[root@ssgao shell]# name=ssgao //声明变量
[root@ssgao shell]# echo $name //输出ssgao
[root@ssgao shell]# unset name //删除变量
[root@ssgao shell]# echo $name
-bash: name: unbound variable
位置参数变量
$n
n为数字,$0代表命令本身,$1~$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
$*
这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@
这个变量也代表命名行中所有的参数,不过$@把每个参数区分对待
$#
这个变量代表命令行中所有参数的个数
192.168.10.101:shell_start aouo$cat add.sh
#!/bin/bash
no1=$1
no2=$2
no3=$(($no1+$no2))
#变量no3的和是no1加no2
echo $no3
#打印变量no3的值
-------------------------------------------------
192.168.10.101:shell_start aouo$./add.sh 1 10
11
-------------------------------------------------
$1 = 1 位置参数1
$2 = 10 位置参数2
预定义变量
$?
最后一次执行的命令返回状态,如果这个变量的值为0,证明上一次命令正确执行。如果这个变量的值非0
证明上一个命令执行不正确了
$$
当前进程的进行号(PID)
$!
后台运行的最后一个进程的进程号(PID)
shell 变量介绍的更多相关文章
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...
- Linux centosVMware shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
一. shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 shell是系统命令的集合 shell脚 ...
- shell脚本(12)-特殊变量介绍
一.特殊变量介绍: 1.$* :代表所有参数,其间隔为IFS内参数的第一个字元 2.$@ :与*星号类同,不同之处在于不参照IFS 3.$# :代表参数数量 4.$: 代表上一个指令的返回值 5.$- ...
- shell编程变量介绍与表达式详解
shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell ...
- 管道符和作业控制、shell变量、环境变量配置文件 使用介绍
第6周第1次课(4月23日) 课程内容: 8.6 管道符和作业控制 8.7/8.8 shell变量8.9 环境变量配置文件扩展bashrc和bash_profile的区别 http://ask.ape ...
- (转)shell变量及扩展
1.shell变量 shell变量赋值语句为”name=[value]“,等号两边不能有空格,可以给shell变量追加内容”name+=value“,取消shell变量的设置使用”unset name ...
- 2.shell变量
shell的变量的介绍 shell的变量分为系统变量和用户自定义变量系统变量:$HOME, $PWD, $SHELL, $USER等等,这些变量系统已经定义好了,我们可以直接拿来用用户自定义变量:我们 ...
- Linux Shell系列教程之(三)Shell变量
本文是Linux Shell系列教程的第(三)篇,更多shell教程请看:Linux Shell系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.今天就为大家介绍下Shell中的变量 ...
- shell变量(二)
变量名的命名规范: 1.命名只能使用英文字母.数字和下划线,且不能以数字开头: 2.不能存在空格‘: 3.不能使用标点符号: 4.不能使用bash里的关键字(可使用help命令查看保留关键字) 变量的 ...
随机推荐
- Python redis 简单介绍
Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...
- js判断手指的上滑,下滑,左滑,右滑,事件监听
原理:1:当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和staerY: 2:当触发touchmove事件的时候,再获取此时手指的横坐标moveEndX和纵坐标moveEn ...
- Jedis与Lua脚本结合
使用Lua脚本的好处 1.减少网络开销:可以将多个请求通过脚本的形式一次发送,减少网络时延和请求次数. 2.原子性的操作:Redis会将整个脚本作为一个整体执行,中间不会被其他命令插入.因此在编 ...
- 20170821xlVBA跨表公式套用
Public Sub CopyModelHideBlankRows() AppSettings Dim StartTime As Variant Dim UsedTime As Variant Sta ...
- android -------- ConstraintLayout Guideline和Barrier(四)
前面的文章 ConstraintLayout 介绍 (一) ConstraintLayout约束属性 (二) ConstraintLayout 宽高比和偏移量比(三) 此博文主要讲解:Guidelin ...
- 解决无法安装Microsoft .Net Framework 3.5
如果解决不了,试试我的方法吧,我也在网上找了好久,最终在本地解决了 所需工具:dism,和Net Framework 3.5,已经打包 链接:https://pan.baidu.com/s/1nKok ...
- linux系统下pdf操作软件pdftk
二十一.pdf操作软件pdftk pdftk是一个命令行程序,使用计算机终端进行操作. 1.第一步:安装pdftk windows:https://www.pdflabs.com/tools/pdft ...
- loj#6062. 「2017 山东一轮集训 Day2」Pair hall定理+线段树
题意:给出一个长度为 n的数列 a和一个长度为 m 的数列 b,求 a有多少个长度为 m的连续子数列能与 b匹配.两个数列可以匹配,当且仅当存在一种方案,使两个数列中的数可以两两配对,两个数可以配对当 ...
- bzoj3529: [Sdoi2014]数表 莫比乌斯反演
题意:求\(\sum_{i=1}^n\sum_{j=1}^nf(gcd(i,j))(gcd(i,j)<=a),f(x)是x的因子和函数\) 先考虑没有限制的情况,考虑枚举gcd为x,那么有\(\ ...
- win10更新后,可以远程桌面ping也没问题,但是无法访问共享文件夹的解决方法
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters 1.在键盘输入WIN+R键, ...