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命令查看保留关键字) 变量的 ...
随机推荐
- [HTTP]_[C/C++]_[解析URL的转义字符百分比字符串]
场景: 1.有时候获取一个超链接时,或者一个图片src时,里面的地址带有%XX,这样如果当成文件路径处理会不识别.所以要把转义字符解码. 2.它其实就是ASCII码的十六进制表示. 以下是stacko ...
- C语言中的多线程编程
很久很久以前,我对C语言的了解并不是很多,我最早听说多线程编程是用Java,其实C语言也有多线程编程,而且更为简单.方便.强大.下面就让我们简单领略一下Unix C语言环境下的多线程编程吧! 下面先看 ...
- 人脸识别最新开发经验demo分享
本来打算做个C#版demo,但没用成功,基于虹软的免费人脸识别技术 过程如下: 1. 传入一张单人脸照片: 2.调用检测人脸函数ASFDetectFaces,成功返回人脸信息的指针: 3.使用 Mar ...
- [C#]读取不同版本的excel文件的方法
--------------------------------2007及以上的版本-------------------------------- 测试如下: //DataInterface.Met ...
- 如何解决failed to load the jni shared library问题
如何解决failed to load the jni shared library问题 首先,我们来查看JDK是多少位的,在搜索框中输入cmd,然后打开命令行窗口. 在命令行中输入java -ve ...
- [Spring] Annotation注释
自动扫描: 在<beans>标签内, <context:annotation-config />允许使用注解 <context:component-scan base-p ...
- eclipse---->自己常用的快捷键
organize imports----> ctrl+shift+o 导入其他工程的类(在学习springboot的注解@EnableAutoConfiguration时用到) 关闭当前窗口的 ...
- English trip V1 - B 4.How Do You Make a Salad? 请给我一间房? Teacher:Julia Key:imperatives 祈使句
In this lesson you will learn to give instructions. 这节课你将将学会给出指示. 课上内容(Lesson) 词汇(Key Word ) bell pe ...
- java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration 最近在做项目的时候遇到了这个问题,很是困扰,多次尝试后发现是jar包的问 ...
- C# ftp 上传、下载、删除
public class FtpHelper { public static readonly FtpHelper Instance = new FtpHelper(); /// <summar ...