`

Shell Test Issue --[: too many arguments

阅读更多

Today, I'm going to write small shell program to verify the demo servers if alive.  

This is the script:

 

#!/bin/sh

echo "Check Servers status startup...."

MAIL_TITLE="OSL OO DEMO SERVERS Check Failed!"

VM03="oardc-vm03.cn.oracle.com"

FOUND=`ping $VM03 -c 2 | grep '2 received,'`

if [ -n $FOUND ];
then
	echo $VM03' is OK!' | mailx -s "Test OK" yonghui.feng@oracle.com
else
 echo $VM03' is Failed!' | mailx -s "$MAIL_TITLE" yonghui.feng@oracle.com
fi

echo "Check Servers status done. check your email"

 

 When I run the script in command line, I got the error message:

 

Check Servers status startup....

./test.sh: line 11: [: too many arguments

 Check the line 11:

 

if [ -n $FOUND ];

 

 Why it will cause the problem?

 

 That is the reason:

 when I print the variable:

 

[root@xxxadmin]# echo $FOUND
2 packets transmitted, 2 received, 0% packet loss, time 1000ms

 convert this variable to the expression: if [ -n $FOUND ];

 

 it will be: if [ -n 2 packets transmitted, 2 received, 0% packet loss, time 1000ms

 if you run the command:

 

 

[root@xxxadmin]# [ -n 2 packets transmitted, 2 received, 0% packet loss, time 1000ms ]
-bash: [: too many arguments

 So we should wrap the variable with "

 

 

if [ -n "$FOUND" ];

 Notice the ".

 

That will work well.

 

this is the final version:

 

 

#!/bin/sh

echo "Check Servers status startup...."

MAIL_TITLE="OSL OO DEMO SERVERS Check Failed!"

VM03="oardc-vm03.cn.oracle.com"

FOUND=`ping $VM03 -c 2 | grep '2 received,'`

if [ -n "$FOUND" ];
then
	echo $VM03' is OK!' | mailx -s "Test OK" yonghui.feng@oracle.com
else
 echo $VM03' is Failed!' | mailx -s "$MAIL_TITLE" yonghui.feng@oracle.com
fi

echo "Check Servers status done. check your email"
 

 

 


 

 

分享到:
评论

相关推荐

    linux bash中too many arguments问题的解决方法

    当filename为空或者只有一行没有空格的字符串的时候,一切正常,反之,则会报:too many arguments,甚至是: binary operator expected之类的错误。 参考文章:...

    README.mdgfdgdf

    |:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:|:-------:| | 25 | 28.57 | 28.83 | 28.68 | 28.96 | 28.74 | 28.92 | **29.23** | **29.16** | **29.17** | - Set...

    ORA-00600: internal error code, arguments [4194]错误

    NULL 博文链接:https://gembler.iteye.com/blog/346242

    tensorflow安装遇到的问题

    使用国内源安装tensorflow: pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade tensorflow-gpu==1.5.0 pip install -i ... 国内镜像源: 阿里云 ...中国科技大学 ...豆瓣(douban) ...

    freeswitch之mod_callcenter介绍

    ### Freeswitch之mod_callcenter模块介绍 #### 模块概述 `mod_callcenter`是Freeswitch中的一个强大模块,主要用于实现呼叫中心的功能。它能够处理来电分配、队列管理、座席状态监控等常见呼叫中心场景的需求。...

    阿里前端开发规范(word文档)

    避免使用`arguments`,利用默认参数和解构赋值传递参数。 - 异步编程:推荐使用Promise和async/await,避免回调地狱。 4. **工程化规范** - 构建工具:使用Webpack、Gulp或Rollup进行项目构建,自动化处理源码、...

    shell命令详解-精编版

    ### Shell命令详解精编版 #### 一、Shell概述与分类 **Shell** 是 Linux 操作系统中的一个重要组成部分,它充当用户与操作系统之间的接口。在 Linux 中,最常用的 Shell 类型是 Bash(Bourne Again Shell)。此外...

    programmers-dev-matching-2021:程序员为2021年上半年做准备

    arguments-target:[DOMElement,insertPosition] | DOMElement-tag:HTML标签名称属性:HTML属性,样式 property- $ parent:DOMElement- $:DOMElement 方法-HTML :(模板| $ target,模板)=> void-addHTML :...

    JavaScript学习笔记

    - arguments对象:在函数内部,arguments对象提供了对传入参数的访问。 5. **异步编程** - 回调函数:理解异步编程的基础,如何处理耗时的操作。 - Promise:学习Promise的三种状态(pending、fulfilled和...

    JavaScript常见面试题共41页.pdf.zip

    - arguments对象的作用。 - 箭头函数的特点和用法。 - 作用域链与闭包。 5. **对象与数组** - 对象创建:字面量语法、构造函数。 - 属性访问:dot notation、bracket notation。 - 数组方法:push、pop、...

    山东省新泰市第二中学高中英语 unit2测试题 新人教版选修8

    - arguments: 强烈的论据,这里指对于计划的赞成和反对的争论,“arguments”意为“争论”或“论点”。 - obtain: 这个动词意味着他总是能获得他想要的东西,意为“获取”或“得到”。 2. 单项选择题: - 正确...

    p8922013_10204_Linux-x86-64.zipORA-00600: INTERNAL ERROR CODE, ARGUMENTS: [17059

    描述中提到的 "ORA-00600: INTERNAL ERROR CODE, ARGUMENTS: [17059], [0X93953434]" 是一个Oracle数据库内部错误代码,表示遇到了无法处理的系统级异常。ORA-00600错误通常涉及到数据库的内部一致性问题,这可能是...

    swift-test-codecov:从“swift test --enable-code-coverage”的输出中生成代码覆盖率的简单可执行文件

    swift-test-codecov 我写这篇文章是因为很难找到可以摄取swift test --enable-code-coverage生成的代码覆盖率报告的工具。 用法 图书馆 该库有一个非常小而直接的界面。 我还没有时间在 README 中写下它,但是看看...

    hadoop命令指南

    hadoop archive -archiveName test.har -p test/ -i test.haridx /user/test/data /user/test/har ``` **2.2 distcp** `distcp`命令用于分布式复制数据。它可以在不同HDFS之间进行高效的数据迁移。 **命令格式**...

    bash的man页(中英对照)

    - exec[-cl][-aname][command[arguments]]:介绍了如何替换当前shell进程。 - exit[n]:说明了退出当前shell的方法。 - export[-fn][name[=word]]:解释了如何导出环境变量。 - fc[-eename][-lnr][first][last]:...

    react-redux-dispatch-async::guitar:react-redux hook和redux中间件可以等待带有固定定义后缀的异步操作

    async'export default function MyUserInterface ( { id } : { id : string } ) { // :backhand_index_pointing_right: pass action and arguments into the array const response = useDispatchAsync ( ...

    plsql_oracle+8i+编程讲义

    - **预定义异常**:如NO_DATA_FOUND、TOO_MANY_ROWS等。 - **自定义异常**:可以通过DECLARE语句定义。 - **异常传播**:异常如何在不同的程序块之间传递。 - **异常处理编程**:如何编写异常处理代码。 #### 6. ...

    certbot-dns-aliyun:阿里云DNS的certbot插件,使用解决阿里云DNS不能自动为通配符证书续期的问题

    好在certbot提供了一个钩子,可以编写一个Shell脚本,让脚本调用DNS服务商的API接口,动态添加TXT记录。安装安装aliyun cli工具wget ...

Global site tag (gtag.js) - Google Analytics