строка 7: [: эхо: целое выражение ожидается

Очевидно, да, как говорится во всей документации, в подоболочке выполняется команда в скобках.

Подоболочка наследует копию всех родительских переменных. Разница в том, что любые изменения, которые вы делаете в подслове, также не вносятся в родительскую копию.

man ksh man page делает это немного яснее, чем bash:

man ksh:

Команда в скобках выполняется в подслове без удаления не экспортируемых переменных.

man bash:

(list)

list выполняется в окружении подслова (смотрите COMMAND ОКРУЖАЮЩАЯ СРЕДА ВЫПОЛНЕНИЯ ниже). Переменные назначения и встроенные команды, влияющие на окружение оболочки, не остаются в силе после завершения команды.

ОКРУЖАЮЩАЯ СИСТЕМА ВЫПОЛНЕНИЯ КОМАНДЫ

Оболочка имеет среду выполнения, которая состоит из следующего: [...] параметров оболочки, которые задаются присвоением переменных [...].
Подстановка команд, команды, сгруппированные в круглые скобки, и асинхронные команды вызываются в окружении подоболочки, являющейся дубликатом окружения оболочки, [...]

1
26.04.2014, 08:14
1 ответ
[114112] Должно быть:[12249] или:[12250] Вы процитировали подкоманду, поэтому не выполнили ее.[114117]
3
27.01.2020, 23:28

Теги

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