Ответ 1
Вы можете использовать :
, что эквивалентно true
и в основном используется
как ничего не делают оператор...
dummy(){
:
}
Я использую инструмент FPM для создания пакета .deb. Этот инструмент создает до/после удаления пакета из поддерживаемых файлов.
К сожалению, bash script, сгенерированный FPM, содержит такую функцию
dummy() {
}
И этот script выход с ошибкой:
Синтаксическая ошибка: "}" неожиданно
Предоставляет ли bash пустые функции? Какая версия bash/linux имеет это ограничение?
Вы можете использовать :
, что эквивалентно true
и в основном используется
как ничего не делают оператор...
dummy(){
:
}
Пустая функция bash может быть незаконной. функция содержит только комментарии, которые также будут считаться пустыми.
a ":" (нулевая команда) может быть помещена в функцию, если вы хотите "НИЧЕГО"
Один лайнер
dummy(){ :; }
:
пустая команда
;
нужен в формате одной строки
Я рекомендую это:
dummy(){ unused(){ :;} }
Если вы используете команду :
null, она будет напечатана с помощью опции xtrace:
(
set -o xtrace
dummy(){ :; }
dummy "null command"
)
echo ------
(
set -o xtrace
dummy(){ unused(){ :;} }
dummy "unused function"
)
выход:
+ dummy 'null command'
+ :
------
+ dummy 'unused function'
Для отладки я использую обертку так:
main() {(
pwd # doing something in subshell
)}
print_and_run() {
clear
(
eval "$1() { unused() { :; } }"
set -o xtrace
"[email protected]"
)
time "[email protected]"
}
print_and_run main aaa "bb bb" ccc "ddd"
# output:
# + main aaa 'bb bb' ccc ddd
# ..