1

Мне нужно сделать скрипт bash, который запускает несколько команд под определенной переменной, т. Е. Если я набираю в bash appserver (например), он запускает все перечисленные ниже команды
но мне нужно положить их в блок:

appserver
[
read -e -p "please enter weblogic username: " user
read -e -s -p "please enter weblogic password: " pass
echo ""
echo 'JAVA_OPTIONS="-Dweblogic.management.username='$user' -Dweblogic.management.password='$pass'"; export JAVA_OPTIONS' > /home/oracle/ofm_start.sh
echo "# Start NodeManager"  >> /home/oracle/ofm_start.sh
]

2 ответа2

0

bash имеет функции, как и многие другие языки программирования.

function appserver
{
    read -e -p "please enter weblogic username: " user
    read -e -s -p "please enter weblogic password: " pass
    echo ""
    echo 'JAVA_OPTIONS="-Dweblogic.management.username='$user' -Dweblogic.management.password='$pass'"; export JAVA_OPTIONS' > /home/oracle/ofm_start.sh
    echo "# Start NodeManager"  >> /home/oracle/ofm_start.sh
}
0

Просто поместите команды в файл со строкой shebang:

#!/usr/bin/env bash

read -e -p "please enter weblogic username: " user
read -e -s -p "please enter weblogic password: " pass
echo ""
echo "JAVA_OPTIONS=\"-Dweblogic.management.username='$user' -Dweblogic.management.password='$pass'\"; export JAVA_OPTIONS" > /home/oracle/ofm_start.sh
echo "# Start NodeManager"  >> /home/oracle/ofm_start.sh

Обратите внимание, что я исправил кавычки в вашей строке echo так как ваша оригинальная версия не сохранила одинарные кавычки.

Затем сделайте скрипт исполняемым с помощью chmod +x foo.sh и запустите его с помощью ./foo.sh .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .