Bash — как определить функции в терминале в нескольких строках?

Bash — как определить функции в терминале в нескольких строках?

как определить функции в терминале в нескольких строках?

# this doesn't work
function my_func { \
  echo "number 5" \
}

Очень просто. Но все равно надоедливо.

решение1

Вам не нужно \продолжать строки здесь. Попробуйте:

function my_func {
  echo "number 5" 
}

Ключевое functionслово не является обязательным, вместо него можно использовать funcname () {...}:

my_func() {
  echo "number 5" 
}

Кстати, причина, по которой это не работает, заключается в том, что обратные косые черты делают определение функции одной строкой, а однострочные определения функций ;в bash должны заканчиваться на .

например, это не удается:

my_func () { echo "number 5" }

это работает:

my_func () { echo "number 5" ; }

как и это:

function my_func { \
  echo "number 5" \
  ; \
}

Связанный контент