设为首页收藏本站

融智技术学院

 找回密码
 注册

QQ登录

只需一步,快速开始

基于Android设备的KaliLinux渗透测试教程
搜索
查看: 277|回复: 0

【Liunx每日一问】asterisk:命令找不到问题?

[复制链接]
MrLi 发表于 2014-4-3 15:00:04 | 显示全部楼层 |阅读模式

问题:我尝试运行下面的脚本...
  1. #!/bin/bash -x
  2. ADMIN=..@.com

  3. X='asterisk -rx "show channels" | grep -c Zap/'
  4. if [$X -ge 4]; then
  5. echo "Active Calls: $X" |
  6. mail -s "Active Calls: $X" $ADMIN
  7. fi
复制代码
并且得到这个错误“line 5:[asterisk:command not found”
我真是不熟悉这个,但是明白它可能是一个路径问题。但是我运行这个脚本从相同的目录,我能输出'asterisk -rx "show cha...'命令,并且它工作很好。所有不理解为什么Shell脚本不能这样做呢?谢谢!
回答:你的问题是双重的
1.这行:
  1. X='asterisk -rx "show
  2. channels" | grep -c Zap/'
复制代码

你想要使用命令替换$()。
2.这行:
  1. if [$X -ge 4];
复制代码
这个[实际不是语法,但是调用一个二进制名为[,它与test二进制相同。因此你必须在[后输入一个空格,否则shell将会显示正如你所见的。
  1. #!/bin/sh -x
  2. ADMIN="..@.com" # don't forget to quote this

  3. X=$(asterisk -rx "show channels" | grep -c Zap/)
  4. if [ "$X" -ge 4 ]; then # don't forget the spaces
  5.   echo "Active Calls: $X" |
  6.   mail -s "Active Calls: $X" $ADMIN
  7. fi
复制代码
提示如果你将要使用bash,你也可以使用它的良好的语法:
  1. #!/bin/bash -x
  2. ADMIN="..@.com" # don't forget to quote this

  3. X=$(asterisk -rx "show channels" | grep -c Zap/)
  4. if ((X > 4)); then # much nicer syntax
  5.   echo "Active Calls: $X" |
  6.   mail -s "Active Calls: $X" $ADMIN
  7. fi
复制代码
温馨提示:您的支持与理解,是我们工作最大的动力。如果您是从网上购买的图书,请在对应的网店,给予本书一个好评,我们将衷心感谢!!!
以下是Linux系统管理与网络管理(第2版)对应的购书评论地址:
当当网:http://product.dangdang.com/23412690.html
亚马逊:http://www.amazon.cn/dp/B00HZEXX4O
京东网:http://item.jd.com/11397773.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号  

GMT+8, 2018-6-19 21:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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