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变量的定义与赋值操作注意事项的更多相关文章

  1. Mysql 临时变量的 定义 和 赋值 Set 和 Into 赋值; Swith Mysql版本 Case When的用法

    一:临时变量的定义和赋值 DECLARE spot SMALLINT; -- 分隔符的位置 DECLARE tempId VARCHAR(64); -- 循环 需要用到的临时的Cid DECLARE ...

  2. Go语言笔记(1)变量的定义与赋值

    变量的定义与赋值 在go笔记系列开始之前,我强烈建议大家使用Goland的IDM,配合vscode使用真的非常亲民. 1.go程序基本结构 首先,是go程序的基本结构,主要有package引入包.im ...

  3. 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...

  4. 【转】shell 教程——06 Shell变量:Shell变量的定义、删除变量、只读变量、变量类型

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...

  5. SQL SERVER中变量的定义、赋值与使用

      本文面向对SQL SERVER中变量操作不熟悉的用户,希望能使他们在看完本文后能对变量操作有具体和全面的认识.   在学习SQL SERVER的过程中,很多时候需要对某些单独的值进行调试,这时就需 ...

  6. Oracle变量的定义、赋值及使用

    首先我们来看看代码,然后我们在说明和解释代码: declare l_dept ; currtime date := sysdate; l_nam ) :),'yyyymmdd'); -- to_cha ...

  7. go变量的定义并赋值

    变量在定义时没有明确的初始化时会赋值为_零值_. 零值是: 数值类型为 `0`, 布尔类型为 `false`, 字符串为 `""`(空字符串). package main impo ...

  8. oracle 的变量的定义和赋值

    第一种 :先定义后赋值 代码 : declare     V_AgeingType        varchar2(500); begin V_AgeingType :='111'; end 第二种 ...

  9. MySQL变量的定义与赋值

    MySQL存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 ...

随机推荐

  1. Exchange WebSerivce Usage

    //ExchangeService版本为2007SP1 ExchangeService service = new ExchangeService(ExchangeVersion.Exchange20 ...

  2. 设置 java -jar 的进程显示名称

    有时候我们会用 nohup java -jar xxx.jar来将一些可执行的java application挂在后台,类似windows服务一样来运行.但是有一个不爽的地方,在linux终端里用jp ...

  3. sql基本命令

    --------------------------------------------------------SQL基本命令开始----------------------------------- ...

  4. 采访ServiceStack的项目领导Demis Bellot——第1部分(网摘)

    ServiceStack是一个开源的.支持.NET与Mono平台的REST Web Services框架.InfoQ有幸与Demis Bellot深入地讨论了这个项目.在这篇两部分报道的第1部分中,我 ...

  5. CI(CodeIgniter)框架入门教程——第二课 初始MVC

    本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...

  6. Android开发自学笔记(Android Studio1.3.1)—3.Android应用结构解析

    一.R文件是什么?      如上图所示,我们可以通过findViewById方法通过传入R.id.show找到我们的TextView元素,findViewById方法也很好理解,从View中通过Id ...

  7. Collection中Set集合在应用中常见的方法和注意点

    Set集合 : 元素无序的,元素不允许重复.      ---->HashSet  : 存值方式使用哈希表来存值的.                   原理 :  如果HashSet中存放对象 ...

  8. Java网络编程——IP

    类:InetAdrress 该类主要用于表示互联网协议(IP对象)地址,且无构造方法 主要方法: public static InetAddress getLocalHost()-->返回本地主 ...

  9. jQuery基础--样式篇(1)

    1.jQuery简介:JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari ...

  10. [转]Eclipse中的Web项目自动部署到Tomcat

    原文地址:http://www.cnblogs.com/ywl925/p/3815173.html 原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的 ...