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命令查看保留关键字) 变量的 ...
随机推荐
- OpenModelica 在特定目录下生成仿真结果文件
OMEdit的仿真结果文件存放在:C:\Users\***\AppData\Local\Temp\OpenModelica\OMEdit 可以在仿真时设置仿真结果文件名,可使用用绝对路径或相对路径 使 ...
- sort-选择排序
void sort_select(vector<int> &v) { for(int i=0;i<v.size()-1;i++) { int min=v[i]; int in ...
- WebStorm Error : program path not specified
1.出现这个错误是由于没有设置Node.js路径引起的. 2.下载安装Node.js. 3.设置对应的路径,设置后点一下Enable按钮即可. 以上,完.
- (25)线程---local数据隔离
线程之间本身是数据共享的,当多个线程同时修改一份数据的时候,数据就可能不 准确,特别是线程量特别大的时候,为了保证数据准确性: (1) 通过线程锁Lock (2)通过local数据隔离 from th ...
- Linux 各种软件的安装-Apache + php 篇
mysql装好了,三剑客还差两个 apache就简单多了. yum -y install httpd # 删除默认欢迎页面 rm -f /etc/httpd/conf.d/welcome.conf s ...
- MySQL official tutorial
1.installation 2.setup environment variables add %/MySQL Server/bin to path. then restart cmd/powers ...
- 20165327 2017-2018-2《Java程序设计》课程总结
20165327 2017-2018-2<Java程序设计>课程总结 预备作业一:我期望的师生关系 预备作业二:学习基础和C语言基础调查 预备作业三:预备作业3 Linux安装及学习 第一 ...
- 20165327 2017-2018-2 《Java程序设计》第一周学习总结
第1章 Java入门 一.Java 的特点 简单 面向对象 平台无关 多线程:允许同时完成多个任务 动态:Java程序的基本组成单元就是类(有些类是自己编写的,有一些是从类库中引入的,而类又是运行时动 ...
- 利用adb截图然后传到电脑
首先配置好adb环境变量 然后adb devices查看是否连接手机,记得把手机调成开发者模式. 截屏 adb shell /system/bin/screencap -p 路径/文件名.后缀名 ad ...
- 在项目中使用react
1. 运行 ’cnpm i react react-dom -S' 安装包 react:专门用于创建组件和虚拟DOM,同时组件的生命周期都在这个包中 react-dom:专门进行DOM操作,主要应用场 ...