shell变量异常问题,echo变量右边的会替换左边的字符串

shell变量异常问题

table.txt里的内容是“EVENT_ID:VARCHAR:100”

如下问题在变量后面加字符串,但是变量右边的会替换左边的字符串

[root@hdp home]# var=`cat table.txt`
[root@hdp home]# d=(${var//:/ })
[root@hdp home]# a=`echo ${d[2]}`
[root@hdp home]# echo $a
100
[root@hdp home]# echo -e $a
100
[root@hdp home]# echo $a"b"
b00
[root@hdp home]# echo "cccccc"$a"bbb"
bbbccc100
[root@hdp home]#
1

1个回答

看着是挺诡异的,我这里运行的是正确的,要不然你试试echo $a'b'(单引号标识强引用)
图片说明

我的操作系统信息为:

Linux version 2.6.32-220.el6.x86_64 (mockbuild@x86-004.build.bos.redhat.com) (gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed Nov 9 08:03:13 EST 2011
0
weixin_42172117
weixin_42172117 单引号也不行,table.txt里的内容如果复制粘贴进去没有异常,但是这个数据是用分裂方法获取后塞到txt文件里,我怀疑是结尾有异常符号导致的,但是找不到异常
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
shell中变量扩展技巧及实例
SHELL中有一些变量扩展的技巧,做下归纳总结mark 一、取子字符串 规则1:${变量名:位置起点} 含义:由指定的位置起点开始,截取子字符串到字符串结束,起点由0开始 例1: var="12345678" echo ${var:5} 输出:678 ------------------------------- 规则2:${变量名:位置起点:长度} 含义:由指定的位置起点
shell变量的输出替换截取等操作
前言 shell中,对变量的输出是最为常见,根据所遇到的情况,对变量的操作进行下总结。 一、变量特殊字符的输出 变量中,有时我们会输出特殊字符,转义字符等,此时直接echo输出则会直接输出,而不会有所想要的结果,因此需要添加-e 属性。实例如下: #!/bin/bash test=100 echo "your score is $test \n" echo "========" ech
shell中变量的空格替换
将多个空格替换为一个空格 echo "1    2  3 4    5     6"|sed 's/[ ] [ ]*/ /g' 清楚所有空格 echo "1    2  3 4    5     6"|sed 's/ //g'
shell脚本学习第四天——bash内部变量,变量主串,变量替换
一、bash内部变量:常见的内部命令:echo,eval,exec,export,readonly,read,shift ,wait,exit和点(.)也就是source命令。 命令 作用 echo 变量名 将变量名表指定的变量显示到标准输出 eval 读取一连串的参数,然后再依参数本身的特性来执行 exec命令参数 当Shell执行到exec语句时,不会去创建新的子进
shell中的变量替换
(1):=句法       在这种替换中,使用和前例中相同的:=句法来设置默认值。        在使用“:=”进行比较时,username变量已经被定义了,但是它的值为空。因此,这里对echo命令使用了变量LOGNAME的值,即设置变量username的值为LOGNAME的值。        有了这个特殊的句法,只有当变量username已被定义,而且有一个实际的非空值时,变量
shell变量的子串的删除/替换
${#string} 返回$string的长度${string:position} 在$string中,从$position位置之后开始提取子串${string:position:length} 在$string中,从$position位置之后开始提取$length长度的子串[root@localhost SHELL]# NAME="ni hao, ming tian" [root@local
shell的扩展(解释了shell单引号,双引号,变量中包含空行,echo时换行符变成空格等)
Expansion Each time you type a command line and press the enter key, bash performs several processes upon the text before it carries out your command. We have seen a couple of cases of how a simple
shell脚本的简单使用:二——之变量替换
[b]Shell变量替换,命令替换,转义字符[/b] [code="java"]a=10 echo "a的值是$a\n" echo -e "加了-e转义后a的值是$a\n" #命令替换 #注意是反引号,不是单引号,这个键位于 Esc 键下方。 DATE=`date` echo "Date is $DATE" #当前登录的用户 Users=`who | wc -...
shell变量(字符串)间的连接
对于变量或者字符串的连接,shell提供了相当简单的做法,比string的连接还要直接。 直接放到一起或用双引号即可。 例如$a, $b,有 c=$a$b c=$a"xyz"$b c=$a$b.txt 原文:http://hi.baidu.com/sunnnnnnnnny/item/12de0ca7fef03513a8cfb7a1
shell字符串变量的处理(截取,替换等)
一、字符串变量的常见操作 1.取长度 str="abcd" expr length $str   # 4 echo ${#str}       # 4 expr "$str" : ".*" # 4 2.查找字符串的位置 str="abc" expr index $str "a"  # 1 expr index $str "b"  # 2 expr index $str "
Shell拼接字符串
Shell拼接字符串 1. 需求 需要将字符串拼接在一起成为一个整体字符串。 2. 方法 直接拼接 3. 示例 直接拼接 [root@server4 ~]# value1='my name' [root@server4 ~]# echo $value1"hahaha" my namehahaha [root@server4 ~]# value2=$value1"is Lawson" [...
在 Shell 中用 echo 输出变量丢失换行符的问题
原文链接:http://hi.baidu.com/moligaloo/item/b404cf0736d085dd72e6765f 若 foo.txt 是一个含有多行文本的文本文件,如: hello world 使用如下命令: foo='cat foo.txt' echo $foo 输出的内容将是: hello world 其中的换行符被替换成了空格,若输出时保留换
【shell】变量内容的删除和替换
【背景】 linux提供了一些可以直接对变量进行操作的符号。通过这些符号,变量中的部分内容可以被删除、替换等,使用它们可以减少代码的行数并提高可读性。 【涉及符号】 ${var#pattern} 从变量头部开始匹配模式,将符合的最短数据删除${var##pattern} 从变量头部开始匹配模式,将符合的最长数据删除${var%pattern} 从变量尾部开始匹配模式,将符合的最短
shell变量(字符串)间的拼接
对于变量或者字符串的连接,shell提供了相当简单的做法 直接放到一起或用双引号即可。 例如$a, $b,有 c=$a$b c=$a"xyz"$b c=$a$b.txt
Linux Shell脚本中变量替换
1. :=句法 在这种替换中,使用和前例中相同的句法来设置默认值。 username="" echo "${username:=$logname}" 在使用”:=”进行比较时,username变量已经被定义了,但是它的值为空,因此这里对echo命令使用了变量logname的值,即设置变量username的值为logname的值。 3.=句法 下面的语句和:=句法非常类似,但是没有冒号 ...
shell 之 脚本变量和字符串截取
$$   Shell本身的PID(ProcessID) $!    Shell最后运行的后台Process的PID $?    最后运行的命令的结束代码(返回值) $-    使用Set命令设定的Flag一览 $*    所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@  所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2"
shell 变量的嵌套使用
需求 需要使用变量的值作为新变量,例如, kobe=24 name='kobe' #想通过name直接获取到24 #语义上也就是${${name}},但是shell不支持这样的操作 命令 此时可以使用eval命令, [root@CentOS-7-2 ~]# name='kobe' [root@CentOS-7-2 ~]# kobe=24 [root@CentOS-7-2 ~]# eval...
Linux shell 执行命令 echo是否包含换行符的问题
Linux shell脚本中执行命令结果赋值给变量&&echo输出变量是否包含换行符的问题echo $ret 和 echo "$ret" 区别:如果是echo $ret,输出结果为一行,没有换行符如果是echo "$ret",输出结果为多行,有换行符-------------------------------------------------------------------...
Shell变量及字符串的操作
#  Shell脚本运行的方法  1、 chmod +x ./xxx.sh  ->   ./xxx.sh  () #    2、/bin/sh xxx.sh   /bin/php test.php #   3、也可以在终端上 # !/bin/bash 然后就可以在终端敲Shell语句了 # echo 'Hello' #  Shell变量: # 定义变量
shell中变量内容的删除、替换
path=/home/miaomiao/bin:/home/miaomiao/.local/bin:/home/miaomiao/dev/env/maven/bin:/home/miaomiao/dev/env/jdk1.8.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local
sed shell 变量替换 变量含有空格以及单引号问题
首先假设我想要echo 一个string带有单引号怎么实现呢? [root@centosTest ~]# echo '1' 1
shell学习总结之变量引用
运行结果: bixiaopeng@bixiaopengtekiMacBook-Pro Shell备忘录$ bash Shell变量引用总结.sh # ------------------------------------------------------- # ============= 变量使用需知 ========== # -------------------------------
shell中变量的变量与eval命令
转载自:http://www.361way.com/shell-eval-variable/4957.html     shell 中经常会用到变量的嵌套的情况。比如,单个或多个变量的值作为变量名,再对该变量名取$获取其内部的变量的情况,这种脚本写起来很难搞,还好有eval 命令方便我们处理这种情况。便于理解,先来一个示例: #!/bin/bash a='my' b='site' my_sit
shell之变量和引用
一 变量  变量:本质上是程序中保存用户数据的一块内存空间,变量名就是内存空间地址。 Shell中:变量可有字母数字和下划线组成,只能以字母或下划线开头。 命名:PATH=/sbin      JAVA_HOME=”/usr/lib” (变量名区分大小写) 在shell中,变量的数据类型无需显示低声明,变量的数据类型会根据不同操作有所变化。 (shell变量部分数据类型,
shell如何设置拼接的变量
<br />strFieldName1=$6<br /> strFieldName2=$7<br /> strFieldName3=$8<br />i=0<br />while [ $i -lt 3 ]<br />do<br />    val=strFieldName$i<br />    echo ${!val}<br />done
linux变量内容的删除与替代${}
bash 对${}定义了不少用法。对变量的操作及判断是一个十分有用的工具,应好好学习一下,以下是说明的表列 变量的删除 ${parameter#word} ${parameter##word} ${parameter%word} ${parameter%%word} 变量的提取 ${parameter:offset} ${parameter:offs...
Linux--shell脚本中截取字符串
用参数截取字符串假设有一个变量var=http://blog.csdn.net/sayhello_world 1.# 号截取,删除左边字符,保留右边字符。 echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :blog.csdn.net/sayhello_world
echo 输出感叹号(含有变量)问题
echo 输出感叹号(含有变量)问题  [vonzhou@localhost kernel]$ name=voznhou [vonzhou@localhost ~]$ myname="$name is me!"bash: !": event not found 因为 !” 会被当作命令行历史替换的符号来处理。不过在shell脚本中没有这样的问题。 不幸的是,你无法使用转义符来转义!:
[PowerShell入门]变量、赋值、算术运算、类型转换、数组、注释
介绍PowerShell中的变量、赋值、算术运算、类型转换、数组和注释
十一. shell的变量功能之变量的显示与设置,取消:echo,unset
1.  变量的显示:#echo  ${name}   或则   #echo  $name  2. 变量的设置:系统变量通常大写,自定义变量小写。   (1)变量与变量内容以等号 = 来连结;   (2)等号两边不能直接接空格符;   (3)shell中所有变量都定义为字符串,且变量名称只能是英文字母与数字,但是数字不能是开头字符;   (4)若有空格符可
shell 变量替换
<br />1,参数替换:<br /> <br />                   不含有“:”的,只要定义了,就生效,不管是否为空<br />                   含有“:”的,即使定义了,但是为空就不生效<br />                   用来替换的内容可以是字符串、一个变量、命令的输出<br />                   被替换的内容是变量,如$a、$1等<br /> <br />         1)默认值替换,如果变量$var没有定义,则整体值为de
Shell Bash变量-变量测试与内容替换
内容替换 变量置换方式 变量y没有设置 变量y为控制 变量y设置值 x=${y-新值} x=新值 x为空 x=$y x=${y:-新值} x=新值 x=新值 x=$y x=${y+新值} x为空 x=新值 x=新值 x=${y:+新值} x为空 x为空 x=新值 x=${y=新值} x=新值 y=新值 x为空 y值不变 x=$y y值不...
awk与shell变量互相赋值
一、awk给shell变量赋值 #!/bin/bash var=`ls -l file.txt | awk '{print $5}'` echo $var 复制代码 二、awk引用shell变量 awk [ -F re] [parameter...] ['pattern {action}' ] [-f progfile][in_file...]
shell变量字符串混合传参 去掉中间空格方法
案例: 在demo.sh 中需要调用sendmsg.sh文件 带参数执行 sh sendmsg.sh aa{a}{b}message在demo.sh中message需要被赋值为:“输出项为:123”123由变量赋值取得message在demo.sh中message需要被赋值为:“输出项为:123”123由变量赋值取得{message} 在demo.sh中 message需要被赋值为:“...
python 从右到左字符串替换方法实现
python 从右到左字符串替换rreplace方法/函数实现 right-to-left string replace LandGrey
每日掌握一个Linux命令 之 输出shell变量命令echo
每日掌握一个Linux命令 之 输出shell变量命令echo 1.简介 echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。Linux的echo命令,在shell编程中极为常用,在终端下打印变量value的时候也是常常用到的。 2.语法 echo (选项) (参数) 3.选项 -e : 激活转义字符 使用-e选项时,若字符串中出现以下字符,则特别加以
Linux Shell Echo多变量输出时怪异叠写现象(某些字符串变量中含有\r或\n)
今天利用Linux Shell命令从文件中截取一部分文本行信息 `Cat file | grep someKeyword` 到Shell变量中,然后又用shell字符串变量截取的方法,提取文本行内更准确的字符信息;利用同样的操作方法,得到多个字符串变量信息,最后再用echo组合多变量输出所需要的格式信息,但最终控制台显示结果却发现了怪异现象,一些字符没有出现或者从首字符处出现了叠写、相互覆盖、覆写...
Shell学习笔记---变量的赋值与替换
声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的。 建议读者先将以下命令分别执行后再整合成脚本,这样会对变量的整个赋值过程理解更透彻。 #!/bin/bash #Filename:prameter_practise1 #Datetime:2010_12_24 08:25 #Discription:Practise of using prameters ...
Shell—变量、字符串和数组
本文主要讲解Shell变量、字符串和数组的相关知识 一、Shell变量 (1)变量的定义 运行shell时,会同时存在三种变量: 1) 局部变量:局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。 2) 环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时
shell变量里的字符替换
b=${a/123/321};将${a}里的第一个123替换为321b=${a//123/321};将${a}里的所有123替换为321shell调试:sh -x aaa.shfrom:http://bbs.chinaunix.net/viewthread.php?tid=218853&extra=&page=7#pid1628522shell十三问不過,假如你只看到 ${ } 只能用來界定變量名
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 人工智能会自己学习 学习java会忘

相似问题

1
shell变量异常问题,echo变量右边的会替换左边的字符串
1
C# 将一个内容里所有相关的字符串转为6位小数
0
VScode 左边像少平一样的图标是什么扩展?(如图)
3
C语言无法读取出指针数组里的字符串
0
不明白为什么会报错,大神求教!!!
1
为什么谷歌、苹果会禁止热更新,而国内却比较普遍?
2
地址栏传值会把编码后的字符串解码吗?
4
构造函数里的参数y会立刻申请内存吗?main函数里能直接用变量y而不用重新定义吗?为什么?
3
这个e==this什么时候会成立呢????
0
Qt调用MATLAB程序就会发生错误自动退出界面,会去找pdb文件,要怎么解决,求各位大神解答,拜托拜托!!!
0
请问这个代码哪里错了?有人会opap的吗?
0
matlab如何判断连通域膨胀后是否会和其他连通域粘连
1
vector变量出现的内存异常,困扰好久,求解!
3
echo helloworld;不加双引号和加了双引号有什么区别吗?
2
delphi 旋转字符串,角度的问题?
2
VS2017 MFC 为什么我这个项目会抛出找不到FindFile.cpp的异常,而新建的工程可以?
5
spring boot中一直刷新一个请求得到的sessionid会变化
0
保存图片后翻转角度会失败,是啥原因?
1
javascrpt语言里读取一个字符串,然后再分割成单个的字符,放在不同的表单
3
javascrpt语言,二维数组转二维字符串怎么做,网上查不到,没有思路