概念:变量赋值,变量替换,变量引用,命令替换

variable=22

echo variable

可以在同一行设置多个变量.例如

va1=good   va2=chif va3=beijing  #需要用空格隔开,会降低可读性和可移植性

variable

echo $variable #变量替换

22

变量替换例子

logfile=err.log

echo “this is a err” >  $logfile

$variable是${variable}的简写形式

variable=value #赋值的时候=前后不能有空格,

variable =value #variable会被当做命令,=22成为命令参数

variable= value #value被当成命令执行,并且附带一个被赋值为空的环境变量variable

‘$variable’单引号全引用 - 变量替换会被阻止

“$variable”双引号半引用 -变量替换会发生

!/bin/bash
hello="A B  C    D"
echo $hello    # 显示 A B C D 变量替换不会保留空格
echo "$hello"  # 显示A B  C   D  变量引用会保留空格,变量替换发生

echo ‘$hello’ #显示$hello, 半引用,变量替换不会发生

A B C D
A B  C    D

$hello

[root@rhel download]# more show_va.sh
!/bin/bash
echo hello
echo $hello
echo "$hello"
echo "${hello}"

hello="A B  C    D"
echo $hello
echo "$hello"
echo '$hello'

va1=22 va2=33 va3=55
echo "va1=$va1 va2=$va2 va3=$va3"

#o_nu=1 2 3
#echo "o_nu is $o_nu"

o_nu=1\ 2\ 3
echo "o_nu is $o_nu"

un_o=  #声明变量,但没有初始化,未赋值的变量为null,不可理解为0
echo $un_0

一个变量的值可以作为某个长字符串中的一部分。如果它在长字符串的末尾,就可直接引用,例:

$s=ing

$echo read$s and writ$s

如果在开头或中间,应该用花括号将该变量括起来:

$dir=/usr/zhang

$cat  ${dir}hr/m1.c

2.命令替换

可以将一个命令的执行结果赋值给变量,两种形式:

(1)倒引号

`命令表`

例:$dir=`pwd`

(2)圆括号

$(命令表)

例:$dir=$(pwd)

for line in `cat file.txt` 等价于$(cat file.txt)

do

echo $line

done

shell变量注意事项的更多相关文章

  1. Shell变量的定义与赋值操作注意事项

    1 shell变量是弱类型 * 声明变量不用声明类型 * 可以存储不同类型的内容 * 使用时要明确变量的类型 * 区分大小写 2 变量声明及赋值格式 2.1 格式  变量名=变量值 # 注意等号两侧不 ...

  2. Shell变量概述

    目录 1. Shell变量概述 1.定义变量,变量名=变量值.不能出现"-横杠"命令 2.引用变量,$变量名 3.查看变量,set显示所有变量,包括自定义变量和环境变量 4.取消变 ...

  3. shell(一) shell变量

    基本介绍 变量命名规范 变量名要求由字母.数字.下划线组成,尽量字母开头,有明确含义 注意:变量赋值时,等号前后不能有空格,变量名称不能和字体变量冲突 自定义变量 当前shell有效 1.定义变量 v ...

  4. 大数据学习(1)-shell脚本注意事项

    1.变量=值 (例如STR=abc)  不用加引号,但此时空格不再是空格字符,特殊字符可用于转义 2.等号两侧不能有空格 3.变量名称一般习惯为大写 4.双引号和单引号有区别,双引号仅将空格脱意,单引 ...

  5. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  6. shell变量

    定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名 ...

  7. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

  8. awk使用shell变量

    awk使用shell变量  (可以计算浮点数) 其实在awk里,是不能直接使用shell变量的 方法是:awk -v 选项让awk 里使用shell变量 TIME=60 awk -v time=&qu ...

  9. shell变量详解

    1 shell变量基础 shell变量是一种很"弱"的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.de ...

随机推荐

  1. 20145225《Java程序设计》 第7周学习总结

    20145225<Java程序设计> 第7周学习总结 教材学习内容总结 第十三章 时间与日期 13.1认识时间与日期 时间的度量:GMT.UT.TAI.UTC.Unix.epoch. 年历 ...

  2. [更新中]并发和并行(Concurrency and Parallelism)

    书籍的简称: CSPPSE: Computer System: a programmer's perspective Second Edition 术语并发是一个通用的概念, 指同时具有多个活动的系统 ...

  3. SQL多行转多列

    --★转换结果如上图 1.首先创建表: CREATE TABLE [成绩表]( ,) NOT NULL, )NULL, , )NULL, , )NULL, , )NULL ) ON [PRIMARY] ...

  4. I Hate It(hdu1754)(线段树区间最大值)

    I Hate It hdu1754 Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  5. 将特定TD颜色改变的两种方法

    方法一:取table值 方法二:使用tbody  

  6. ASP.NET MVC学习之模型绑定(2)

    3.手工调用模型绑定 很多情况下我们都是通过形参的方式接收来自http流中的数据,这看似是完美的,但是缺少了很多过程中的控制,所以我们就需要使用手工的方式进行绑定.下面我们通过一个例子来说明,首先打开 ...

  7. IIS7.5 HTTP错误403.1-Forbidden 您尝试从某个目录运行CGI、ISAPI或其他可执行程序,但该目录不允许运行可执行文件

    ----------------错误详细---------------------------------------------------------------- --------------- ...

  8. httpwebrequest 请求压缩,接受压缩的字符流请求

    请看图,客户端和服务端都使用gzip压缩. 客户端参数以json字符串形式gzip压缩,以二进制流发送到服务端:服务端接收到请求,解压缩gzip后,进行业务逻辑处理:处理完后在将返回值以json形式, ...

  9. java 解析xml

    http://developer.51cto.com/art/200903/117512.htm

  10. Atitit.软件兼容性原理与实践 v3 q326.docx

    Atitit.软件兼容性原理与实践 v3 q326.docx 1. 架构兼容性1 2. Api兼容性1 2.1. 新api  vs  修改旧的api1 3. Web方面的兼容性(js,html)1 3 ...