快速参考:

变量定义格式:

变量名=值

str1="hello world"    # define a string var
str2=hello      # define a string var
i= # define a int var
f=1.3        # define a float var
j=$i # define a var by an existed var

注意:等号两侧不能有空格

变量引用格式:

$变量名

echo str1=$str1, str2=$str2, i=$i, f=$f    #output vars' values

以下原文:http://blog.sina.com.cn/s/blog_7ee076050101aob9.html

一、Shell定义变量需要遵循的规则
Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:
1. 首个字符必须为字母(a-z,A-Z)
2. 中间不能有空格,可以使用下划线(_)
3. 不能使用标点符号
4. 不能使用bash里的关键字(可用help命令查看保留关键字)

二、shell变量赋值
需要给变量赋值时,可以这么写:
变量名=值

三、shell变量的引用
要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )。例如:
#!/bin/sh
# 对变量赋值:
a="hello world" #等号两边均不能有空格存在
# 打印变量a的值:
echo "A is:" $a
注:上边的#号为注释,将在后边讲到。

挑个自己喜欢的编辑器,输入上述内容,并保存为文件first,然后执行 chmod +x first 使其可执行,最后输入 ./first 执行该脚本。其输出结果如下:
A is: hello world

有时候变量名可能会和其它文字混淆,比如:
num=2
echo "this is the $numnd"

上述脚本并不会输出"this is the 2nd"而是"this is the ";这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是num变量:
num=2
echo "this is the ${num}nd"

其输出结果为:this is the 2nd

注意:shell的默认赋值是字符串赋值。比如:
var=1
var=$var+1
echo $var
打印出来的不是2而是1+1。为了达到我们想要的效果有以下几种表达方式:
let "var+=1"
var=$[$var+1]
var=`expr $var + 1`#注意加号两边的空格,否则还是按照字符串的方式赋值。
注意:前两种方式在bash下有效,在sh下会出错。

let表示数学运算,expr用于整数值运算,每一项用空格隔开,$[]将中括号内的表达式作为数学运算先计算结果再输出。

shell基础——变量定义的更多相关文章

  1. [shell基础]——变量

    变量的赋值 #定义变量,注意等号两边没有任何空格 variable=#定义环境变量export variable= #双引号:可含空格.可转义特殊字符 variable=" " # ...

  2. shell脚本变量定义注意别跟系统变量重名了……

    写了个很简单的脚本,执行结果却很奇怪.   1 #!/bin/bash PATH=$HOME/vlc_transplant4 rm -f $PATH/vlc ln -s $PATH/bin/vlc-s ...

  3. Python基础-变量定义-输出输入

    一.变量的定义 字母.数字.下划线组成,不能以数字开头,同时区分大小写 二.输出 print() print(,) 输出空格 input() 读取键盘输入

  4. shell基础--变量的数值计算

    变量的数值计算 1.$((表达式)) (1).实验1 [root@~_~ day4]# cat test.sh #!/bin/bash a=6 b=2 echo "a-b=$(($a-$b) ...

  5. jquery 基础变量定义

    var $i=$("#D1"); var i=$("#D2"); function(){      //这里获取控件对象值      var d1=$i.val ...

  6. 『忘了再学』Shell基础 — 11、变量定义的规则和分类

    目录 1.定义变量的规则 2.变量的分类 1.定义变量的规则 在定义变量时,有一些规则需要遵守 变量名称可以由字母.数字和下划线组成,但是不能以数字开头.如果变量名是2name则是错误的. 在Bash ...

  7. centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课

    centos shell基础知识 alias  变量单引号 双引号   history 错误重定向 2>&1  jobs  环境变量 .bash_history  source配置文件 ...

  8. Linux中shell基础、重定向、管道符、环境变量

    1.什么是shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器).它接收用户输入的命令并把它送入内核去执行.起着协调用户与系统的一致性和在用户与系统之间进行交互的 ...

  9. shell基础、变量、相关脚本

    目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...

随机推荐

  1. [转]Linux netstat命令详解

    简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Member ...

  2. nginx上传模块nginx_upload_module和nginx_uploadprogress_module模块进度显示,如何传递GET参数等。

    ownload:http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gzconfigure and make : . ...

  3. 加密芯片ALPU

    加密芯片ALPU 纽文微电子(上海)有限公司 n  公司简介 NEOWINE是一家半导体开发公司,2002年6月成立于韩国,于2011年在中国设法人;  研发总部位于韩国京畿道,并在上海.深圳设办事处 ...

  4. IP defragment

    snort IP defragment 模型: BSD favors an original fragment with an offset that is less than or equal to ...

  5. c# 数据导出成excel 方法总结 见标红部分

    public void ServiceOrderExport(string data) { StringBuilder sb = new StringBuilder(); Type entityTyp ...

  6. 我(webabcd)的文章索引

    [最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store A ...

  7. hdu 5093 Battle ships 匈牙利 很巧妙的建图思路

    //这题逼我把匈牙利学了 之前一直很勤快敲网络流 而且不以为耻反以为荣 解:首先按行扫描编号,如果在同一块中(即可以相互攻击),那么将其标为相同的数组,对列也做同样的操作. 然后扫描整张图,如果行编号 ...

  8. hdu 4497 GCD and LCM 质因素分解+排列组合or容斥原理

    //昨天把一个i写成1了 然后挂了一下午 首先进行质因数分解g=a1^b1+a2^b2...... l=a1^b1'+a2^b2'.......,然后判断两种不可行情况:1,g的分解式中有l的分解式中 ...

  9. HDOJ-1041 Computer Transformation(找规律+大数运算)

    http://acm.hdu.edu.cn/showproblem.php?pid=1041 有一个初始只有一个1的串 每次都按①0 -> 10;②1 -> 01;这两条规则进行替换 形如 ...

  10. C Deepin指针

    L-value -->标识了一个可以存储结果值的内存存储地址--指针变量 or 普通内存变量; R-value -->数值;