Shell编程变量
shell变量
什么是变量,存放了各种数据,在linux怎么定义了变量,name=ken,name就是变量名,ken就是变量值,
但是在shell中,有三种方式:
name=ken name='ken' name="ken" name="my name" #中间有空格的时候,需要加单引号或双引号。单纯的字符串,加不加单引号或双引号都可以。
Shell 变量的命名规范和大部分编程语言都一样。
变量名的定义
变量名由数字、字母、下划线组成;
必须以字母或者下划线开头;
不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。
使用变量
echo $name
也可以
echo {$name}
这是规范的方式,当跟其他字符连在一起的时候,用花括号区分变量,以便于显示变量。
修改变量
直接再定义就可以
比如现在的 name=ken,我想 name=bobo,直接 name=boobo 即可。
单引号和双引号的区别
所见即所得,不解释变量
' '
解释变量,获取变量的值
" "
把一个命令的执行结果赋值给一个变量
` `
把一个命令的执行结果赋值给一个变量
$()
删除变量(取消变量值)不能删除只读变量
unset name
比如设置只读变量
readonly name=变量
unset name是删除不掉的
变量的分类
局部变量
定义一个ken=18 只在当前shell有效,只有在脚本或当前命令行中定义。当再打开一个终端或者打开一个bash也是不显示的,这就是局部变量。
环境变量(全局生效,全部shell生效)
vim /etc/profile.d/自定义.sh export name=变量
而后同步
source 自定义.sh
这就设定好了全局变量。
shell变量,特殊变量
变量 含义
$ 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$,第二个参数是$。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $? 上个命令的退出状态,或函数的返回值。 返回0是正确,返回其他数值都是错误。使用echo $?查看是否执行成功。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID
条件表达式,就是判断
[ expression ] 表达式要有空格
整数比较符
-eq 代表 等于 -ne 代标 不等于 -gt 代表 大于 -lt 代标 小于 -ge 代表 大于等于 -le 代表 小于等于
字符串(判断字符串的时候一定要加双引号,在没有定义的变量进行判断时,不加双引号会出错)
== 是等于 != 是不等于 -z 是变量为0为真 -n 是变量不为空(就是0)才为真
文件测试
-e 文件或目录存在为真 -f 文件存在为真 -d 目录存在为真
布尔运算符(只能适用于[ ])
! 代表 取反,就代表取相反的结果 -a 代表 两个条件为真才为真 -o 代表 两个有一个为真才为真
逻辑判断符
&&:前面命令正确才会执行后面的命令 || :前面命令错误才会执行后面的命令
整数运算
运算符
+ - * / 这是除法,但是它是取整 % 取余
运算表达式
$(())
其他运算工具
let++ 是+ 他的默认就是1 let+= 是+
使用方法:
let x+=1 echo $x
结果就是2
再执行
let x+=1 echo $x
结果就是3
shell括号用途总结
$() :执行shell命令 ``:执行shell命令 $(()):第一个用于简单数学运算,第二个支持三目运算符 [ ]:条件表达式,判断的时候用,里面不支持逻辑判断符 ${}:用途一是引用变量的时候使用,用途二是对字符串处理 {}:对立面的内容进行展开,必须是两个点,比如{..}
Shell编程变量的更多相关文章
- shell编程变量赋值
[shell编程变量赋值] 1.等号两边均不能有空格存在.例, a="hello world" 2.变量和其它文字以{}或空格格开,否则会混淆.例, 有时候变量名可能会和其它文 ...
- Linux_10------Linux之shell编程------变量
.-9 vim num.sh #! /bin/bash num1=$1 num2=$2 sum=$(($num1+$num2)) #变量sum是num1和num2的综合 echo $sum 执行 ./ ...
- Linux Shell编程变量赋值和引用
我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/sh ... 注意:最好使用“! ...
- shell编程—变量(三)
在shell脚本中,变量分两种,系统变量和自定义变量. 系统默认变量是系统自带的一些变量,如path为路径变量 用户自定义变量为在编写吧脚本的时候自己定义的一些变量 变量名命名规则 首个字符必须为字母 ...
- shell 编程 变量
转自:http://blog.csdn.net/qq504196282/article/details/52994249 shell之变量和引用 分类:SHELL编程基础 (470) (0) 举报 ...
- shell编程-变量
Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: VALUE=“tmp” 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵 ...
- shell编程变量介绍与表达式详解
shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell ...
- shell编程——变量的数值计算
在shell脚本中,有时候会需要对数值类型的变量进行计算,通常我们用的是(()) [root@localhost collect]# ((a=1+2)) [root@localhost collect ...
- 1.shell编程-变量的高级用法
1.1.变量替换 变量替换的六种形式 实例:非贪婪和贪婪的区别 从头部删除 [root@VM_0_9_centos shell_learn]# var_1="i love you,do yo ...
随机推荐
- [CSP-S模拟测试]:椎(线段树维护区间最值和单调栈)
题目描述 虽不能至,心向往之. $Treap=Tree+Heap$ 椎$=$树$+$堆 小$\pi$学习了计算机科学中的数据结构$Treap$. 小$\pi$知道$Treap$指的是一种树. 小$\p ...
- C#调用windows API实现 smallpdf客户端程序进行批量压缩
一.背景 Smallpdf 网站针对PDF文件提供了非常齐全的功能:PDF 与 Word.PPT.Excel.JPG 的相互转化.PDF 的压缩.编辑.合并.分割.解密.加密等功能,用户无需注册即可免 ...
- C语言指令数组名和数组名取地址
以下C语言指令:int a[5] = {1, 3, 5, 7, 9}; int *p = (int *)(&a + 1); printf("%d, %d", *(a + 1 ...
- Python Module_oslo.vmware_连接 vCenter
目录 目录 前言 Install oslsvmware How to use the vSphere Web Service SDK 前言 oslo.vmware 是一个由 Python 实现的 vC ...
- Web UI自动化测试基础——元素定位(二)
本篇文章整理了元素定位的基础知识——多个元素定位方式. 一.多个元素定位方式简介 同单个元素定位方式相同,多个元素定位方式也有与之对应的8种方式,即id.name.class_name.tag_nam ...
- PHP Memcache 扩展安装
PHP Memcache 扩展安装 PHP Memcache 扩展包下载地址:http://pecl.php.net/package/memcache,你可以下载最新稳定包(stable). 下载对应 ...
- 应用安全 - 中间件 - Apache - Apache POI
CVE-2014-3529 Date2014 类型 注入XML外部实体访问外部实体资源或者读取任意文件 影响范围 Apache POI 3.10-FINAL及以前版本 复现 CVE-2016-5000 ...
- 基于weui loading插件封装
<!-- Loading.vue --> <template> <div id="loadingToast" v-if="show" ...
- docker--搭建docker swarm集群
10 搭建docker swarm集群 10.1 swarm 介绍 Swarm这个项目名称特别贴切.在Wiki的解释中,Swarm behavior是指动物的群集行 为.比如我们常见的蜂群,鱼群,秋天 ...
- 第五周学习总结&第三次实验报告(String类的应用)
第五周学习总结 1.学习了继承的相关知识点: (1) 继承的格式为class 子类 extends 父类{} (2) 继承实际上是通过子类去扩展父类的功能 (3) 一个子类只能继承一个父类,也就是说, ...