检查是否存在具有完整路径名的文件时,二元运算符预期错误

时间:2014-07-07 04:26:21

标签: unix

pathname=$(cat $HOME/.rm.cfg)
if [ ! -z $pathname/$1 ]

.rm.cfg是包含以下目录的文件

  

/ home / username / deleted1

$1是文件的名称,例如。玻璃

为什么[ ! -z $pathname/$1 ]行给出二元运算符预期的错误。

2 个答案:

答案 0 :(得分:24)

看起来你的$ pathname包含多个单词。您的.rm.cfg文件中可能有多行,或者路径可能包含空格。无论如何,你最终得到了

if [ ! -z word word word/$1 ]

这不好。如果您只是期望单个路径并希望防止包含空格的路径,请将if行更改为

if [ ! -z "$pathname/$1" ]

答案 1 :(得分:15)

我遇到了同样的错误二元运算符预期我在某个变量中得到了多个单词。当我在下面提到它时使用它。

if [ ! -z ${variable} ];

因此,为了解决此错误,我将其更改为:

if [[ ! -z ${variable} ]];