LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: pavin

怎样才能保留住命令行参数的双引号?

[复制链接]
发表于 2006-2-24 19:47:49 | 显示全部楼层
# echo '"jfkld"'
"jfkld"
回复 支持 反对

使用道具 举报

发表于 2006-2-27 08:51:47 | 显示全部楼层
楼上的这样应该不行,他是要调用一个脚本,然后输出,比如:
#./1.sh  "abc"
"abc"
而这样的话在1.sh脚本中应该有这么一句echo $1,这样的话输出的肯定是abc,
而如果按照楼上的意思用echo "'$1'"的话,那输出的就是$1了。
楼主提的问题挺难的,楼主要是想到办法的话请贴出来给大家看看。
回复 支持 反对

使用道具 举报

发表于 2006-2-27 09:02:32 | 显示全部楼层
???

#cat 1.sh
#echo \"$1\"

#./1.sh abc
"abc"

?????
回复 支持 反对

使用道具 举报

发表于 2006-2-27 09:36:00 | 显示全部楼层
xx.sh
#!/bin/bash
echo "$1"

#./xx.sh "first"

shell里边自己加引号就好了。。。
回复 支持 反对

使用道具 举报

发表于 2006-2-27 09:54:12 | 显示全部楼层
Post by 终极幻想
xx.sh
#!/bin/bash
echo "$1"

#./xx.sh "first"

shell里边自己加引号就好了。。。
这样不行的吧,我试过了。
#more 1.sh
#!/bin/bash
echo "$1"

#./1.sh  "first"
first
是没有引号的。
回复 支持 反对

使用道具 举报

发表于 2006-2-27 09:57:08 | 显示全部楼层
Post by dunerunner
???

#cat 1.sh
#echo \"$1\"

#./1.sh abc
"abc"

?????
这位兄弟没有明白楼主的意思啊,请看看上面楼主的帖子,楼主呢?怎么我在这一直帮他顶帖子,他都消失了啊。
回复 支持 反对

使用道具 举报

发表于 2006-2-27 11:19:45 | 显示全部楼层
必须用单引号将整个参数封装起来从而使shell不对其中内容做处理(即省去了处理的第1到10步),不然shell将从命令行处理的第一步开始。要不就\"使shell不转义双引. 或者你手工在脚本里加上双引。(比较傻的方法)
回复 支持 反对

使用道具 举报

发表于 2006-2-27 11:26:04 | 显示全部楼层
Post by shizi4838
这样不行的吧,我试过了。
#more 1.sh
#!/bin/bash
echo "$1"

#./1.sh  "first"
first
是没有引号的。


是我没理解楼主的要求。。。。。

这个东西,直接用 \ 就好了。。讨论这么多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-27 14:59:12 | 显示全部楼层
周末没上班, 谢谢shizi4838帮我顶.
到目前,还没想到有什么办法. 也许bash根本无法实现我想要的.
回复 支持 反对

使用道具 举报

发表于 2006-2-27 15:11:15 | 显示全部楼层
Post by dunerunner
???

#cat 1.sh
#echo \"$1\"

#./1.sh abc
"abc"

?????


echo \"$1\"  ↑↑↑↑   ./1.sh abc ===> 加不加""输出的时候都有""


shizi4838兄~~我看了好几遍了 ~~呵呵,看来我确实没看明白~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表