Функция Bash присваивает значение переданному параметру

Возможно, в момент установки yast выдал вам предупреждение? Попробуйте установить kernel-dev и переустановить виртуальный бокс.

Попробуйте загрузить и установить вручную пакет rpm с сайта VirtualBox.

1
02.11.2016, 20:31
2 ответа

Хорошо, похоже, я решил свою собственную проблему:

function getParameter {
    if [ -z "$3" ]; then
        # User read -p to show a prompt rather than using echo for this
        read -p "$2`echo $'\n> '`" parameter

        # Print to sdterr and return 1 to indicate failure
        if [ -z "$parameter" ]; then
            >&2 echo "Parameter $1 not found"
            return 1
        else
            echo $parameter
        fi
    else
        echo $3
    fi
}

Используя echo -p, я смог показать подсказку на консоли и все же вернуть строку из функции, используя обычный echo. Таким образом, вызывая функцию с database_username=$(getParameter ...), я могу присвоить ее переменной.

0
28.01.2020, 01:08

Не уверен на 100%, что я следую, но допустим, файл конфигурации выглядит так:

foo
database_user tom
bar

Требуемое значение obvius - это database_user .

В сценарии вы можете просто поместить такую ​​строку:

dbUser=$(sed -nE 's/database_user (.*$)/\1/p' config)

Тогда переменная $ dbUser будет содержать эту информацию:

echo $dbUser 
tom
0
28.01.2020, 01:08

Теги

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