免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3099 | 回复: 14
打印 上一主题 下一主题

求助,关于*在shell中的解释 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-25 10:54 |只看该作者 |倒序浏览
本帖最后由 thinshootout 于 2010-10-25 11:03 编辑

shell脚本中以下语句:
    #!/bin/sh
    /usr/local/soliddb-6.3/bin/solsql -x returnerroronexit -x onlyresults -e"select * from request_results" "tcp 1315" username password

在执行时,*会被替换成工作目录下的所有文件,现在想让*保持原样传递给所执行的命令,请问该如何做?谢谢~

论坛徽章:
0
2 [报告]
发表于 2010-10-25 10:57 |只看该作者
用'试试

论坛徽章:
0
3 [报告]
发表于 2010-10-25 10:59 |只看该作者
回复 2# lkk2003rty


    用单引号'也不行~

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
4 [报告]
发表于 2010-10-25 11:00 |只看该作者
回复 1# thinshootout


    什么shell?

   *已经被引用了,还会展开为当前目录下的文件?

论坛徽章:
0
5 [报告]
发表于 2010-10-25 11:02 |只看该作者
回复 4# blackold


    基本的shell,既不是bash,又不是csh, ksh

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
6 [报告]
发表于 2010-10-25 11:06 |只看该作者
回复 5# thinshootout


    只回答了一个问题啊。

   "\*"试试。

论坛徽章:
0
7 [报告]
发表于 2010-10-25 11:10 |只看该作者
反斜杠转义试试  \*

论坛徽章:
0
8 [报告]
发表于 2010-10-25 11:21 |只看该作者
回复 6# blackold

用反斜杠转义后,用-x调试:

    + /usr/local/soliddb-6.3/bin/solsql -x returnerroronexit -x onlyresults -e"select * from request_results" "tcp 1315" username passwd

cmd=Error: File '"tcp' can not be opened.

命令看起来没问题了,但是却把“tcp 1315”解释成读取文件。
但是把:/usr/local/soliddb-6.3/bin/solsql -x returnerroronexit -x onlyresults -e"select * from request_results" "tcp 1315" username passwd
直接在命令行下执行,就没有问题~

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2010-10-25 11:25 |只看该作者
回复 8# thinshootout


    "select * from request_results"  这是SQL语句
  "tcp 1315"
username
passwd  分别是命令参数。

是这样吧?

#!是什么?

命令行可执行,脚本应该也可以。

论坛徽章:
0
10 [报告]
发表于 2010-10-25 11:30 |只看该作者
回复 9# blackold


    #!/bin/sh是脚本起始提示shell去某位置查找解释命令的啊,所有脚本第一行不都是这样~

    不错,"tcp 1315"是solsql的参数,现在的问题正是该命令可以在命令行下执行,却不能在shell脚本中执行~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP