Я провел небольшой тест со следующим кодом:
#!/bin/bash
if [ -f "buggyScript.sh" ; then
echo "found this buggy script"
fi
Обратите внимание на отсутствие] в if.Теперь я ввел
bash -n buggyScript.sh
, и пропавшее] не было обнаружено.
Второй тестовый скрипт выглядел так:
#!/bin/bash
if [ -f "buggyScript.sh" ]; then
echo "found this buggy script"
Обратите внимание на отсутствующий файл в концееслиТестирование с помощью
bash -n buggyScript.sh
вернуло
buggyScript.sh: line 5: syntax error: unexpected end of file
Вывод: тестирование сценария с параметром n обнаруживает некоторые ошибки, но ни в коем случае не все из них.Поэтому я думаю, что вы действительно найдете все ошибки только при выполнении скрипта.