Как спровоцировать синтаксическую ошибку в оболочке bash

Параметр f указывает файл, поэтому вы должны указать имя файла сразу после опции f (в данном случае это порядок):

Также файл не сжимается, поэтому удалите z

tar -xvf cudnn-9.0-linux-x64-v7.tgz
2
задан 29 April 2018 в 14:10

6 ответов

;

возвращает:

bash: syntax error near unexpected token `;'
5
ответ дан 22 May 2018 в 11:09
  • 1
    Это удивительно для меня, потому что а) ; выглядит так невинно, и б) это символ завершения команды (или что-то, что он называется точно), поэтому я держал пари, что это просто нет-op. Круто. – PerlDuck 29 April 2018 в 15:12
  • 2
    @PerlDuck Вы можете спровоцировать синтаксические ошибки с каждым видом смайликов, попробуйте :-), ;-) и ];->. Как будто они хотели, чтобы это было так ... – dessert 29 April 2018 в 15:25
  • 3
    @PerlDuck извините, я удалил вилку, на всякий случай. – terdon♦ 29 April 2018 в 15:28
  • 4
    @PerlDuck nah, я просто случайно прочитал это сразу после публикации. – terdon♦ 29 April 2018 в 15:31
;

возвращает:

bash: syntax error near unexpected token `;'
5
ответ дан 17 July 2018 в 15:50
;

возвращает:

bash: syntax error near unexpected token `;'
5
ответ дан 23 July 2018 в 16:48

Вы можете использовать подавляющее большинство зарезервированных слов 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 `]]'
1] Я взял те из man bash / ОПРЕДЕЛЕНИЯ и / РЕЗЕРВИРОВАННЫЕ СЛОВА.

5
ответ дан 22 May 2018 в 11:09

Вы можете использовать подавляющее большинство зарезервированных слов 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
ответ дан 17 July 2018 в 15:50

Вы можете использовать подавляющее большинство зарезервированных слов 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
ответ дан 23 July 2018 в 16:48

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

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