linux 多重引号怎么弄。。

嘿嘿嘿嘿嘿 发布于 2013/05/23 17:04
阅读 1K+
收藏 1

有一串字符想赋给一个变量 但是变量里本来已经有两层引号了 应该用什么方法来解决这个问题

比如给变量hehe赋一个字符串: alias heihei="hehe is 'haha' xixixi gege"

如上例应该怎么弄呢 我天真的用了  hehe='alias heihei="hehe is 'haha' xixixi gege"'  发现不行。。

加载中
0
RobertLu
RobertLu
需要给一个变量赋值为
alias myip="ifconfig eth0 | grep 'inet addr' | sed 's/^.*inet addr://g'| cut -d ' ' -f1 "

需要把所有的双引号转义,在头尾各加一个双引号即可赋值给变量,即

var="alias myip=\"ifconfig eth0 | grep 'inet addr' | sed 's/^.*inet addr://g\' | cut -d ' ' -f1 \" "
单引号和双引号对其内部的转义符号处理不一样。

嘿嘿嘿嘿嘿
多谢 正解
0
O
Orzogc
我记得是用\转义
嘿嘿嘿嘿嘿
我例子举得不恰当 你看这个命令 alias myip="ifconfig eth0 | grep 'inet addr' | sed 's/^.*inet addr://g'| cut -d ' ' -f1 " 要赋给 hehe 这个变量 里面的引号转义就不行。。
0
RobertLu
RobertLu

我直接执行alias myip="ifconfig eth0 | grep 'inet addr' | sed 's/^.*inet addr://g'| cut -d ' ' -f1 "

设定了一个命令别名啊?而且可以执行,但是或得不了ip。

目测里面没有引号嵌套。

嘿嘿嘿嘿嘿
这个命令只有两层,但是如果我想把这个命令赋给 hehe 这个变量就还需要在命令外面加一层引号吧。所以这里一共有3层引号。这个命令应该是能获取IP的,你看看是不是你换行的问题。
返回顶部
顶部