Bash: Синтаксическая ошибка: неожиданное перенаправление

Я делаю это в сценарии:

read direc <<< $(basename `pwd`)

и я добираюсь:

Syntax error: redirection unexpected

в машине человечности

/bin/bash --version
GNU bash, version 4.0.33(1)-release (x86_64-pc-linux-gnu)

в то время как я не получаю эту ошибку в другой машине SuSe:

/bin/bash --version
GNU bash, version 3.2.39(1)-release (x86_64-suse-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.

Почему ошибка?

120
задан John Kugelman supports Monica 17 January 2017 в 01:12
поделиться

2 ответа

Ссылается ли ваш скрипт на /bin/bash или /bin/sh в своей строке hash bang? Системной оболочкой по умолчанию в Ubuntu является dash, а не bash, поэтому если у вас есть #!/bin/sh, то ваш скрипт будет использовать другую оболочку, чем вы ожидаете. В Dash нет оператора перенаправления <<<.

202
ответ дан 24 November 2019 в 01:38
поделиться

сделать это проще,

direc=$(basename `pwd`)

Или использовать оболочку

$ direc=${PWD##*/}
2
ответ дан 24 November 2019 в 01:38
поделиться
Другие вопросы по тегам:

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