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.以 ...
随机推荐
- gRpc NET Core
NET Core下使用gRpc公开服务(SSL/TLS) 一.前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息,而随之而来的就是一波关于.NET Core下如何使用的教程,但是在这众多 ...
- android 底层log分析 内存及backtrace tombstone/crash
Build fingerprint: 'XXXXXXXXX'pid: 1658, tid: 13086 >>> system_server <<<signal 1 ...
- Linux 网络编程详解七(并发僵尸进程处理)
在上一篇程序框架中,解决了子进程退出,父进程继续存在的功能,但是多条客户端连接如果同一时间并行退出,导致服务器端多个子进程同一时间全部退出,而SIGCHLD是不可靠信号,同时来多条信号可能无法处理,导 ...
- jquery-barcode:js实现的条码打印
这是一个纯js的jQuery插件,项目地址:http://barcode-coder.com/en/barcode-jquery-plugin-201.html 使用示例: <!doctype ...
- lecture10-模型的结合与全贝叶斯学习
这是Hinton的第10课 这节课有两篇论文可以作为背景或者课外读物<Adaptive mixtures of local experts>和<Improving neural ne ...
- 读懂IL代码就这么简单 (一)
一前言 感谢 @冰麟轻武 指出文章的错误之处,现已更正 对于IL代码没了解之前总感觉很神奇,初一看完全不知所云,只听高手们说,了解IL代码你能更加清楚的知道你的代码是如何运行相互调用的,此言一出不明觉 ...
- web安全——应用(java)
简介 由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对web应用的攻击.据最新调查,信息安全有75%都发生在web应用而非网络层面. 场景 控制访问的权限.只让可以访问的访 ...
- Oracle基础语法
--表create table tb_myTable( mname vardhar2(30), pwd varchar2(30)); --存储过程create or replace procedure ...
- 半平面交模板(BZOJ1007)
#include<cstdio> #include<algorithm> #define LDB long double using namespace std; ]; str ...
- OSPF协议详解
CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...