Должен быть какой-то однозначный синтаксис для определения функции и без существенного изменения другого синтаксиса оболочки, это не может быть: 1]
do_something {
# one or more commands go here
}
Вы сказали, что это «не связано с его текущим синтаксисом», но это так! Обратите внимание, что при попытке запустить некоторые вы не получаете никакой синтаксической ошибки. Вы получаете ошибку, но это не ошибка синтаксиса. Вторая строка с } является синтаксической ошибкой, но первая строка не является. Вместо этого do_something { пытается запустить команду с именем do_something и передать { в качестве аргумента этой команде:
$ do_something {
do_something: command not found
Если уже существует команда с именем do_something, вы запускаете Это. Если уже есть функция, называемая do_something, вы вызываете ее. В общем, важно, чтобы синтаксис был однозначным, но также важно, чтобы можно было переопределить функцию, не называя ее случайно.
Поскольку type { скажет вам, { ключевое слово оболочки. Это делает его подобно [[. Если используется в ситуации, когда в противном случае это была бы команда, { несет специальную семантику. В частности, он выполняет группировку команд. В других ситуациях, однако, он может использоваться без привязки для обозначения символа {. Это включает в себя ситуацию передачи его как второго или последующего слова команды.
Конечно, Bash , который вы называете его , был разработан для обработки { иначе, чем его в настоящее время. Однако его синтаксис больше не был бы совместим с оболочкой POSIX, и Bash на самом деле не был бы оболочкой стиля Bourne и не мог бы запускать многие сценарии оболочки.
Напротив, является метасимволом оболочки. Он всегда обрабатывается специально, если он появляется в команде и не цитируется (с ' ', " " или \). Таким образом, в синтаксисе нет двусмысленности:
do_something() {
# one or more commands go here
}
Это ничего не значит. Если у Bash нет функций, то это будет синтаксическая ошибка, по той же причине echo foo(bar) является синтаксической ошибкой.
Если вам действительно не нравится нотация (), вы можете использовать ключевое слово function и опустить это, как упоминает судовод. Обратите внимание, что это не является частью синтаксиса для определения функций в большинстве других оболочек в стиле Bourne, а в некоторых поддерживается, но функции определены таким образом, что имеют другую семантику - и поэтому скрипт, который его использует, не будет переносимым. (Причина, по которой этот синтаксис может быть однозначным, заключается в том, что function сам по себе является ключевым словом в Bash, что означает, что все, что следует за ним, является началом определения функции.)
Наконец, обратите внимание, что, хотя большинство функций определения используют { на практике, любая составная команда разрешена. Если у вас была функция, тело которой вы хотели всегда запускать в подоболочке, вы можете использовать ( ), а не { }.
Автоматическое растяжение?
KDE Форумы / Ширина автоматического масштабирования Windows: http://forum.kde.org/viewtopic.php?f=66&t=97839
Автоматическое растяжение?
Конфигурировать настройки специально для окнаСистемные настройки> Поведение окна> Правила окна
Специальное окно / Настройки приложения
Щелкните правой кнопкой мыши по границе окна> Дополнительно> Специальное окно / Настройки приложения> Размер и amp; Позиция
Размер - Запомнить
Автоматическое растяжение?
KDE Forums / Ширина автоматического масштабирования Windows: http://forum.kde.org/viewtopic.php?f=66&t=97839
Правила окна
Системные настройки> Поведение окна> Правила окна
Специальные настройки окна / приложения
Щелкните правой кнопкой мыши по границе окна> Дополнительно> Специальное окно / Настройки приложения> Размер и amp; Положение
Размер - Запомнить
[/g1]
Что касается более широкого вопроса о запоминании размера и позиции, принятый ответ показывает, как это сделать на основе каждого окна.
Следующий вопрос: как глобально настроить его для всех окон? Это было запрошено еще в 2000 году в https://bugs.kde.org/show_bug.cgi?id=15329, который был закрыт как WONTFIX в 2012 году. Разработчик KWin имел это, чтобы сказать:
Я устанавливаю этот запрос функции в WONTFIX, так как невозможно реализовать такую политику запоминания с нашей используемой в настоящее время системой окон. Признание окна - нетривиальная проблема. Это может стать разрешимым с Wayland, но в целом запоминание не может быть реализовано диспетчером окон или системой окон, но требует от клиентов.Что касается более широкого вопроса о запоминании размера и позиции, принятый ответ показывает, как это сделать на основе каждого окна.
Следующий вопрос: как глобально настроить его для всех окон? Это было запрошено еще в 2000 году в https://bugs.kde.org/show_bug.cgi?id=15329 , который был закрыт как WONTFIX в 2012 году. Разработчик KWin сказал следующее:
Я устанавливаю этот запрос функции в WONTFIX, так как невозможно реализовать такую политику сохранения с нашей используемой в настоящее время системой окон. Признание окна - нетривиальная проблема. Это может стать разрешимым с Wayland, но в целом запоминание не может быть реализовано диспетчером окон или системой окон, но должно быть запрошено клиентами.
blockquote>