2015-11-24 3 views
2

Я пытаюсь использовать checkbashisms в процессе преобразования сценариев bash для удовлетворения POSIX shell specification. Я запускаю следующую команду:команда checkbashisms не работает

$checkbashisms test.sh 
$ 

где test.sh выглядит следующим образом:

$ cat test.sh 
#!/bin/sh 
VAR=foo 
if [ $VAR == bar ]; then 
    echo 'bar!' 
fi 

Как вы видите, я не получаю никаких результатов. Я не уверен, что я делаю неправильно, но AFAIK == следует идентифицировать как багизм, и предупреждение должно быть напечатано на стандартный вывод (в этом случае - в командной строке).

Любая идея, почему я не получаю предупреждения для этого башизма?

+0

Какую версию checkbashisms вы используете? Вы связаны с довольно старой man-страницей. Может ли это быть более новым тестом? –

+0

Я только что установил Ubuntu 12.04, а затем сделал «$ sudo apt-get install devscripts». не устанавливает ли последняя версия? – zuckermanori

+0

Последняя версия в трехлетнем выпуске Ubuntu. Да. Но из-за быстрого просмотра проверка также присутствует в этой версии. И версия из этого пакета (вручную извлеченная), похоже, работает на вашем скрипте здесь. –

ответ

1

Я должен решить проблему. как предложил здесь @Etan Reisner, я извлек файл checkbashisms и выполнил его на моем обычном Linux-сервере CentOS. Он работал как ожидалось - я получил предупреждение о '=='.

+0

Разве этот файл отличается от того, который вы пытались раньше? Разве версия perl отличается? –

+1

Ubuntu 12.04 работает Perl 5.14.2 не работает. CentOS 6.6 работает Perl 5.10.1 действительно работал. Использовались те же версии checkbashisms. – zuckermanori

+0

Интересно. Если у checkbashisms есть трекер ошибок, комната IRC/XMPP, список рассылки и т. Д., Вы можете захотеть узнать о попытках спросить авторов об этом. –