`
诗意的栖居
  • 浏览: 277386 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

关于bash中的“too many arguments”问题

 
阅读更多
if test -z `cat filename`
当filename为空或者只有一行没有空格的字符串的时候,一切正常,反之,则会报,诸如
: too many arguments,甚至是: binary operator expected之类的错误,参见了一下:http://www.ibm.com/developerworks/cn/linux/shell/bash/bash-2/index.html

filename中的空格回车等迷惑了
如果环境变量没放在双引号中,那么bash 认为条件中的自变量过多。可以用双引号将字符串自变量括起来消除该问题。请记住,养成将所有字符串自变量用双引号括起的习惯,将除去很多类似的编程错误。

本文问题解决方法很简单,给命令执行部分加上双引号就可以了:
if test -z "`cat filename`"

其他情况也类似,如果参数多的话,给某个参数加上双引号就可以了
分享到:
评论

相关推荐

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

    在Linux的Bash Shell环境中,当你尝试执行一个命令或脚本时,如果你遇到了"too many arguments"的错误,这通常意味着你传递给命令的参数数量超过了它的限制,或者是bash解析命令行的方式导致了误解析。这个问题通常...

    Linux命令笔记1

    在Linux中,有多种shell可供选择,如Bash、Csh、Zsh和Ksh。这些shell提供了不同的交互方式和功能。Bash是最常用的一种,它是Bourne Again SHell的缩写,是Unix和Linux系统默认的shell。 【命令的使用】 在Linux中...

    bash函数:有用的bash函数

    echo "Too many arguments" fi } ``` 8. **错误处理** 可以使用`set -e`命令使脚本在遇到错误时立即退出,这有助于编写更健壮的函数。例如: ```bash safeCommand() { set -e # 执行可能会出错的命令 ...

    python-language-server:适用于Python的Microsoft语言服务器

    too-many-positional-arguments-before-star 在加注星标的参数之前提供了太多的参数。 no-cls-argument 类方法中的第一个参数必须为cls no-method-argument 方法没有参数 no-self-argument 方法中的第一个

    linux5.4下MS 5.0安装过程

    在安装过程中,可能会遇到一些问题,如脚本中的错误提示 `/mnt/UNIX/License_Pack/lp_setup: line 106: [: too many arguments`。这通常是由于脚本中的语法错误导致的,需要手动修正或联系技术支持解决。 #### 三、...

Global site tag (gtag.js) - Google Analytics