shell变量赋值 不能有空格的原因

典型例子:

a=date

echo $a      成立

a =date

echo $a     不成立

其实原因很简单

shell在解释命令时的原则是第一个符号标记只能是程序或者命令,有空格的时候第一个符号标记就是“a”,当然就不成立了

而没有空格的时候,第一个标记是“a=date”,shell将解释为变量赋值指令,因此可以通过。

这个原则还可以用来解释很多情况

时间: 2024-08-30 01:02:51

shell变量赋值 不能有空格的原因的相关文章

shell变量赋值与环境

shell变量赋值与环境 今天,跟着架构师(凡爷)搞了一个代码量统计的脚本,我学到了以下几条: 1)命令在脚本里,只是字符串,较长的命令可以改为变量,引用去执行 2)潜意识我想到if,添加语句块,而凡爷却想到了grep -v,节省了一大段代码 3)echo '' > stat 他自然而然地加上这一行,让output按不同区块相隔开,结构清晰 4)他定位问题精准而快速,很是钦佩 今晚关于shell变量,我做了很多测试,将其整理如下,以便温故而知新. #赋值# # hours_per_day=24 

第二章 Shell变量定义

1. Shell变量概述 1. 什么是变量 变量是Shell传递数据的一种方法,简单理解:用一个固定的字符串去表示不固定的内容,便于后续引用. 2.变量命令规范 变量定义时名称有要求:字母.数字.下划线几个组成,尽量字母开头,变量名最好具备一定的含义. ip=10.0.0.100 ip1=10.0.0.100 Hostname_Ip=10.0.0.100 hostname_IP=10.0.0.100 等号是赋值,需要注意:等号两边不能有空格,其次定义的变量不要与系统命令出现冲突. 3. Shel

第二章 Shell变量

第二章 Shell变量 1. shell变量概述 1. 什么是变量 变量是Shell传递数据的一种方法,简单理解:用一个固定的字符串去表示不固定的内容,便于后续引用. 2.变量命令规范 变量定义时名称有要求:字母.数字.下划线几个组成,尽量字母开头,变量名最好具备一定的含义. ip=10.0.0.100 ip1=10.0.0.100 Hostname_Ip=10.0.0.100 hostname_IP=10.0.0.100 等号是赋值,需要注意:等号两边不能有空格,其次定义的变量不要与系统命令出

精通awk系列(14):细说awk中的变量和变量赋值

回到: Linux系列文章 Shell系列文章 Awk系列文章 awk变量 awk的变量是动态变量,在使用时声明. 所以awk变量有3种状态: 未声明状态:称为untyped类型 引用过但未赋值状态:unassigned类型 已赋值状态 引用未赋值的变量,其默认初始值为空字符串或数值0. 在awk中未声明的变量称为untyped,声明了但未赋值(只要引用了就声明了)的变量其类型为unassigned. gawk 4.2版提供了typeof()函数,可以测试变量的数据类型,包括测试变量是否声明.

shell 的特性:命令行展开,变量赋值,以及文件层次标准(history)

bash默认会保存以前执行过的命令列表 当前shell的进程保存在缓冲区中 缓冲区中的命令会在shell退出后保存在文件中    .bash history 使用上下箭头可以翻看此前执行过的命令 history: !数字  :  执行history中第数字条命令 !!   :  上一条命令 !-数字:表示执行命令列表中的倒数第数字条命令 ESC .  : 执行上个命令的最后参数 ! string:执行命令列表中最后一个以string开头的命令 - d :删除第数字条记录 -c:清空history

Linux Shell编程变量赋值和引用

我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/sh ... 注意:最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改为tcsh,其他类似. 符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh.编辑结束并保存后,如果要执行该脚本,必须先使其可执行: chmod +x filename 此后在该脚本所在目录下,输入 ./filename 即可

【Linux】shell编程之给变量赋值的五种方法

1.  Shell中的变量类型 Shell中的变量可以分为环境变量.位置变量.预定义的特殊变量以及用户自定义变量. <!--[if !supportLists]-->2.  <!--[endif]-->环境变量 Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境变量由系统统一命名.部分系统变量的值由系统设定,部分环境变量的值可以由用户给定. 环境变量的名称由大写字母组成,常用的Shell环境变量如下所示: HOME: 用户主目录的全路径名,cd $

小鸟初学Shell编程(六)变量赋值

变量的意义 我们在使用Linux命令或脚本的时候,会有一些输出,那么这些输出的信息可以用变量临时存储,以备我们下一条命令或脚本使用. 变量的定义 变量的定义建议用一个有意义的英文单词来代表变量,不要使用简单的字母a,b 这类的变量名定义.因为我们写好Shell脚本实际上是要给人看的,所以我们定义好的变量,是希望变量有具体的含义,能让阅读Shell脚本人能轻松的明白. 变量的命名规则: 字母.数字.下划线 不以数字开头 变量的赋值 为变量赋值的过程,称为变量替换 Shell脚本里变量是不区分变量类

十三、Shell篇——变量赋值、引用、作用范围

变量的定义 变量名的命名规则 - 字母.数字.下划线 - 不以数字开头 变量的赋值 为变量赋值的过程,称为变量替换 变量名=变量值 - a=123 使用let为变量赋值 - let a=10+20 将命令赋值给变量 - l=ls 将命令结果赋值给变量,使用$ () 或者" 变量值有空格等特殊字符可以包含在""或"中 (1)将命令结果赋值给变量,使用$ () 或者" [email protected] ~ % cmd1=`ls test/` [email p