Как вызвать синтаксическую ошибку в оболочке удара

У меня только есть 20%-е тестовое покрытие для моего проекта. https://coveralls.io/github/montao/opsh

Я хочу добавить тест для синтаксической ошибки. Я не могу получить вывод "синтаксическая ошибка" от простой команды оболочки остроты. Вы могли помочь мне с некоторым примером (примерами)?

2
задан 29 April 2018 в 14:10

2 ответа

;

возвраты:

bash: syntax error near unexpected token `;'
5
ответ дан 2 December 2019 в 01:28

Можно использовать подавляющее большинство bashзарезервированные слова и операторы управления для вызова синтаксической ошибки – позволяют нам сделать быстрый тест для получения (конечно, неполный!) список:

$ tabs 10
  for i in '|' '&' ';' '(' ')' '<' '>' '||' '&&' \
           ';;' '|&' 'case' 'coproc' 'do' 'done' \
           'elif' 'else' 'esac' 'fi' 'for' 'function' \
           'if' 'in' 'select' 'then' 'until' 'while' \
           '{' '}' '[[' ']]';
  do
    printf "%s\t" "$i"; bash -c $i |& sed '2d;s/.*://'
  done
|          syntax error near unexpected token `|'                                                                                                      
&          syntax error near unexpected token `&'
;          syntax error near unexpected token `;'
(          unexpected end of file
)          syntax error near unexpected token `)'
<          syntax error near unexpected token `newline'
>          syntax error near unexpected token `newline'
||         syntax error near unexpected token `||'
&&         syntax error near unexpected token `&&'
;;         syntax error near unexpected token `;;'
|&         syntax error near unexpected token `|&'
case       syntax error near unexpected token `newline'
coproc     syntax error near unexpected token `newline'
do         syntax error near unexpected token `do'
done       syntax error near unexpected token `done'
elif       syntax error near unexpected token `elif'
else       syntax error near unexpected token `else'
esac       syntax error near unexpected token `esac'
fi         syntax error near unexpected token `fi'
for        syntax error near unexpected token `newline'
function   syntax error near unexpected token `newline'
if         unexpected end of file
in         syntax error near unexpected token `in'
select     syntax error near unexpected token `newline'
then       syntax error near unexpected token `then'
until      unexpected end of file
while      unexpected end of file
{          unexpected end of file
}          syntax error near unexpected token `}'
[[         unexpected token `EOF' in conditional command
]]         syntax error near unexpected token `]]'

Я взял тех, которые от man bash/ ОПРЕДЕЛЕНИЯ и ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА/.

5
ответ дан 2 December 2019 в 01:28

Другие вопросы по тегам:

Похожие вопросы: