У скриптах bash я намагаюся зберігати свої змінні локальними для функцій, де можу, а потім передаю те, що мені потрібно, з таких функцій, як нижче
#!/bin/bash
function FUNCTION() {
local LOCAL="value"
echo "$LOCAL" # return this variable
}
GLOBAL=$(FUNCTION)
echo "$GLOBAL"
Але чи можна це зробити, включаючи власне відлуння функції, так що, якщо функція має власні повідомлення для виводу, мені не доведеться вловлювати їх у змінну
#!/bin/bash
function FUNCTION() {
local LOCAL="value"
echo "$LOCAL" # return this variable
echo "This function is done now" # do not return this variable
}
GLOBAL=$(FUNCTION)
echo "$GLOBAL" # should only echo 'value'
function foo()
синтаксис , не POSIX ? Ви можете покращити сумісність POSIX за допомогою 9 менших клавіш.