Відсутній скрипт Bash ']' [закрито]


82

Я отримую помилку ./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. Тому якщо є якась дурна помилка, пробачте.

Відповіді:



40

Я отримав цю помилку під час спроби використовувати &&оператор всередині одинарних дужок, наприклад [ ... && ... ]. Мені довелося перейти на [[ ... && ... ]].


Я також використовував && з if, і це вирішило мою проблему.
Praveen Patel

Я використовував оператор == і мав ту саму проблему, допоміг перехід на подвійну квадратну дужку, дякую!
Вішну-Наїр,



0

Якщо ви створили свій скрипт у Windows і хочете запустити його на машині Linux, і ви впевнені, що у вашому коді немає помилок, встановіть dos2unix на машині Linux і запустіть dos2unix yourscript.sh. Потім запустіть сценарій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.