Подтвердить что ты не робот

Bash Отсутствие скриптов ']'

Я получаю сообщение об ошибке. /test.sh: строка 13: [: missing `] 'в файле 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 сценариях. Так что если есть глупая ошибка, пожалуйста, извините меня.

4b9b3361

Ответ 1

Измените

if [ -s "p1"];  #line 13

в

if [ -s "p1" ];  #line 13

отметить пробел.

Ответ 2

Я получил эту ошибку, пытаясь использовать оператор && внутри отдельных скобок, например [ ... && ... ]. Мне пришлось переключиться на [[ ... && ... ]].

Ответ 3

Вам не хватает пробела после "p1":

if [ -s "p1" ];

Ответ 4

добавить пробел перед закрывающей скобкой

Ответ 5

если [-s "p1"];

следи за пространством: P