Shell变量的定义与赋值操作注意事项
1 shell变量是弱类型
* 声明变量不用声明类型
* 可以存储不同类型的内容
* 使用时要明确变量的类型
* 区分大小写
2 变量声明及赋值格式
2.1 格式
变量名=变量值
# 注意等号两侧不可有空格,否则会当做命令来对待,而[、]等命令必须要在前后都加上空格
据此你可以明白为什么有这些限制
2.2 举例
var="do you?"
3 变量的使用
3.1 格式
$变量名 或 ${变量名}
注意与$(xxx)的区别,$(xxx)是执行命令xxx时输出的结果
如now=$(date)同now=`date` #反斜杠执行命令
3.2 举例
var="a string"
echo $var #或者是echo ${var}
4 shell 变量的条件赋值
var3=${var1:var2} #冒号后面是“-”的话,或者没有(默认是“-”) 表示, 如果变量1的值为空, 就将变量2赋给变量3.if var1 is null var3=var2 else var3=var1
var3=${var1:+var2} 冒号后面是“+”的话, 表示变量1不为空时, 使用变量2的值赋给变量3
这和其他语言中的三目运算符:?类似。
5.下面是一个例子:
#!/bin/bash
expectStr="start/running,"
str=$(sudo service mysql status | awk '{print $2}') #显示mysql服务状态
echo $str
#比较字符串变量是否相等=、==、!=
if [ "$str"x != "expectStr"x ] #x used if case $str is null
then
echo 'not running'
else echo running
fi
Shell变量的定义与赋值操作注意事项的更多相关文章
- Mysql 临时变量的 定义 和 赋值 Set 和 Into 赋值; Swith Mysql版本 Case When的用法
一:临时变量的定义和赋值 DECLARE spot SMALLINT; -- 分隔符的位置 DECLARE tempId VARCHAR(64); -- 循环 需要用到的临时的Cid DECLARE ...
- Go语言笔记(1)变量的定义与赋值
变量的定义与赋值 在go笔记系列开始之前,我强烈建议大家使用Goland的IDM,配合vscode使用真的非常亲民. 1.go程序基本结构 首先,是go程序的基本结构,主要有package引入包.im ...
- 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...
- 【转】shell 教程——06 Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...
- SQL SERVER中变量的定义、赋值与使用
本文面向对SQL SERVER中变量操作不熟悉的用户,希望能使他们在看完本文后能对变量操作有具体和全面的认识. 在学习SQL SERVER的过程中,很多时候需要对某些单独的值进行调试,这时就需 ...
- Oracle变量的定义、赋值及使用
首先我们来看看代码,然后我们在说明和解释代码: declare l_dept ; currtime date := sysdate; l_nam ) :),'yyyymmdd'); -- to_cha ...
- go变量的定义并赋值
变量在定义时没有明确的初始化时会赋值为_零值_. 零值是: 数值类型为 `0`, 布尔类型为 `false`, 字符串为 `""`(空字符串). package main impo ...
- oracle 的变量的定义和赋值
第一种 :先定义后赋值 代码 : declare V_AgeingType varchar2(500); begin V_AgeingType :='111'; end 第二种 ...
- MySQL变量的定义与赋值
MySQL存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 ...
随机推荐
- Orchard搜索与索引
Orchard提供了索引与搜索的功能.开启Indexing属性可实现索引功能,伴随着一个特定的索引执行(默认包含基础搜索引擎).除了Indexing和Search提供查询索引的功能外(通过关键字或使用 ...
- Markdown会干掉Html吗?
Markdown会干掉Html吗? 很明显,MarkDown正在已一种比病毒还快的速度传播着,量子的机器人语言也是深受其启发,当然了,在这个东西没搞出来之前,MarkDown就能干很多事情,比如在线编 ...
- C# Gabbage Collecting System
* 这个程序非常巧妙的探测了一下垃圾回收机制,发现如下结论: * 当内存紧急时,才会启动垃圾回收GC.Collect() * 从此程序的运行上来看,delete是连续出现的,这体现了垃圾回收的强度. ...
- 转:PHP中防止SQL注入的方法
[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最 ...
- 给菜单加个优雅的unselect事件
先上图,说场景 假设默认选中的是item1,我现在选中item3了,有时候需要对item1做一些别的处理.常见的做法是,切换选中状态前找到当前选中(item1),或者每次选中后选中的项记录在中间变量. ...
- supervisor
文章转自:http://cpper.info/2016/04/14/supervisor-usage.html在此只是当做笔记使用,不做他用 Linux进程管理工具supervisor安装及使 ...
- 数组的方法 Array.map();Array.every()和Array.some();数组的indexof();检测是否是数组isArray(obj);
数组的方法 Array.map(); 栗子: var a=[1,2,,3]; var b=a.map( function(value){return value*value} ); alert(b); ...
- ElasticSearch快照备份及恢复
工作步骤: 1:建立备份快照数据挂载点,即共享文件目录(Shared Filesystem): 2:建立快照仓储repository: 3:建立snapshot快照备份: 4:恢复snapshot快照 ...
- js-延迟处理函数
<script type="text/javascript"> var i = setTimeout('check()',5000); function check() ...
- 如何在linux Shell脚本里面把一个数组传递到awk内部进行处理
前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法.前两天在QQ群里讨论awk的时候,无意间又聊起这个话题.机缘巧合之下找到一个思路,特此分 ...