Bash脚本缺少']'[关闭]


81

我收到错误./test.sh:行13:[:缺少`]'在文件test.sh中,我尝试使用方括号和其他选项(例如-a)或通过检查文件p1的大小来尝试,但错误是无论给出的输入是什么,我总是在那里,else语句总是被执行。我甚至尝试通过删除; 在第13行中,但这没有帮助。

test.sh

#!/bin/bash
echo "Enter app name"
read y
$y &
top -b -n 1 > topLog.log
#-w checks for the whole word not and sub string from that word
grep -w "$y" topLog.log > p1
#-s option checks if the file p1 is present or not
if [ -s "p1"];  #line 13
then 
    echo "Successful "
else
    echo "Unsuccessful"
fi
rm p1

我是bash脚本的新手。所以,如果有任何愚蠢的错误,请原谅。

Answers:



38

尝试&&在单括号内使用运算符时遇到此错误[ ... && ... ]。我不得不切换到[[ ... && ... ]]


我也在使用&&和if,它解决了我的问题。
Praveen Patel

我正在使用==运算符,并且遇到了同样的问题,切换到双方括号有帮助,谢谢!
Vishnu Nair



0

如果您在Windows上创建了脚本并想在linux机器上运行它,并且确定代码没有错误,请在linux机器上安装dos2unix并运行dos2unix yourscript.sh。然后,运行脚本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.