您的位置:首页 > 运维架构 > Shell

shell脚本中的``导致sed命令解析失败

2010-10-16 11:04 465 查看
``导致sed命令解析失败,试验如下

试图把单个反斜线替换为两个反斜线,也就是把\替换为\\

$ cat t1.sh

#!/bin/sh

a=`echo 1|sed 's/\\/\\\\/g'`

echo $a

$ ./t1.sh

sed:-e 表达式 #1,字符 8:unterminated `s' command

$ sh -x ./t3.sh

++ echo 1

++ sed 's/\/\\/g'

sed:-e 表达式 #1,字符 8:unterminated `s' command

+ a=

+ echo

应该是反斜线提前被shell解析,传给sed的时候已经变成s/\/\\/g

把``替换为$()的方式就可以了

$ cat t1.sh

#!/bin/sh

a=$(echo 1|sed 's/\\/\\\\/g')

echo $a

$ ./t1.sh

1

执行成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 脚本 command sed