Является ли `return` внутри функции обязательным требованием?

unattended-upgrades заставил apache2 отключиться от меня в последнее время. После копания я понял, что причиной отказа было автоматическое обновление некоторых пакетов php7.0- *.

Я все еще нахожусь на том, что преимущества автоматических обновлений перевешивают затраты, когда это неизбежно происходит

В моем исследовании я наткнулся на файл конфигурации /etc/apt/apt.conf.d/50unattended-upgrades, в котором есть настройки, которые позволят вам добавьте адрес электронной почты для пакета, чтобы отправлять вам отчет каждый раз, когда выполняются автоматические обновления.

Вам нужно добавить строку в файл конфигурации (вам понадобится также установленный почтовый пакет, чтобы фактически отправить электронная почта):

Unattended-Upgrade::Mail "me@example.com";

Дополнительные сведения о файле конфигурации доступны: https://gist.github.com/roybotnik/b0ec2eda2bc625e19eaf https: //help.ubuntu. com / community / AutomaticSecurityUpdates

Пакет unattended-upgrades также оставляет след в том, что он сделал в журналах: /var/log/unattended-upgrades/, а также /var/log/apt/.

3
задан 14 April 2018 в 11:25

3 ответа

Значение функции return не требуется в функции. Обычно в скрипте используется значение return для возвращаемого значения выхода. Значения выхода обычно похожи на 1 или 0, где многие сценаристы могут использовать его для успешной 0 и 1 как неудачные.

#!/bin/bash
#The following function returns a value of 0 or 1
function if_running(){
    ps -ef | grep -w "$1" | grep -v grep > /dev/null
    if [[ $? == 0 ]]; then
        return 0
    else
        return 1
    fi
}

#Read in name of a running process
read -p "Enter a name of a process: "

#Send REPLY to function
if_running $REPLY

#Check return value and echo appropriately
if [[ $? == 0 ]]; then
   echo "Return value is $?"
   echo "$REPLY is running..."
else
   echo "Return value is $?"
   echo "$REPLY is not running..."
fi

Примеры:

~$ ./ps_test.bsh 
Enter a name of a process: ls
Return value is 1
ls is not running...

~$ ./ps_test.bsh 
Enter a name of a process: bash
Return value is 0
bash is running...

И этот ответ, который я написал немного назад, не имеет возвращаемых значений, но все же дает вывод https://askubuntu.com/a/1023493/231142

#!/bin/bash
function area(){
    circ=$(echo "3.14 * $1^2" | bc)
}

#Read in radius
read -p "Enter a radius: "

#Send REPLY to function
area $REPLY

#Print output
echo "Area of a circle is $circ"
[d4 ] Пример:

terrance@terrance-ubuntu:~$ ./circ.bsh 
Enter a radius: 6
Area of a circle is 113.04

Надеюсь, что это поможет!

4
ответ дан 22 May 2018 в 11:26

Значение функции return не требуется в функции. Обычно в скрипте используется значение return для возвращаемого значения выхода. Значения выхода обычно похожи на 1 или 0, где многие сценаристы могут использовать его для успешной 0 и 1 как неудачные.

#!/bin/bash #The following function returns a value of 0 or 1 function if_running(){ ps -ef | grep -w "$1" | grep -v grep > /dev/null if [[ $? == 0 ]]; then return 0 else return 1 fi } #Read in name of a running process read -p "Enter a name of a process: " #Send REPLY to function if_running $REPLY #Check return value and echo appropriately if [[ $? == 0 ]]; then echo "Return value is $?" echo "$REPLY is running..." else echo "Return value is $?" echo "$REPLY is not running..." fi

Примеры:

~$ ./ps_test.bsh Enter a name of a process: ls Return value is 1 ls is not running... ~$ ./ps_test.bsh Enter a name of a process: bash Return value is 0 bash is running...

И этот ответ, который я написал немного назад, не имеет возвращаемых значений, но все же дает вывод https://askubuntu.com/a/1023493/231142

#!/bin/bash function area(){ circ=$(echo "3.14 * $1^2" | bc) } #Read in radius read -p "Enter a radius: " #Send REPLY to function area $REPLY #Print output echo "Area of a circle is $circ"

Пример:

terrance@terrance-ubuntu:~$ ./circ.bsh Enter a radius: 6 Area of a circle is 113.04

Надеюсь, что это поможет!

4
ответ дан 17 July 2018 в 16:52

Значение функции return не требуется в функции. Обычно в скрипте используется значение return для возвращаемого значения выхода. Значения выхода обычно похожи на 1 или 0, где многие сценаристы могут использовать его для успешной 0 и 1 как неудачные.

#!/bin/bash #The following function returns a value of 0 or 1 function if_running(){ ps -ef | grep -w "$1" | grep -v grep > /dev/null if [[ $? == 0 ]]; then return 0 else return 1 fi } #Read in name of a running process read -p "Enter a name of a process: " #Send REPLY to function if_running $REPLY #Check return value and echo appropriately if [[ $? == 0 ]]; then echo "Return value is $?" echo "$REPLY is running..." else echo "Return value is $?" echo "$REPLY is not running..." fi

Примеры:

~$ ./ps_test.bsh Enter a name of a process: ls Return value is 1 ls is not running... ~$ ./ps_test.bsh Enter a name of a process: bash Return value is 0 bash is running...

И этот ответ, который я написал немного назад, не имеет возвращаемых значений, но все же дает вывод https://askubuntu.com/a/1023493/231142

#!/bin/bash function area(){ circ=$(echo "3.14 * $1^2" | bc) } #Read in radius read -p "Enter a radius: " #Send REPLY to function area $REPLY #Print output echo "Area of a circle is $circ"

Пример:

terrance@terrance-ubuntu:~$ ./circ.bsh Enter a radius: 6 Area of a circle is 113.04

Надеюсь, что это поможет!

4
ответ дан 23 July 2018 в 17:43

Другие вопросы по тегам:

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