Есть ли способ загружать файлы с разных URL-адресов на основе ввода данных пользователем? - PullRequest
0 голосов
/ 08 мая 2020

Есть два выпуска 1. Dev, доступные по адресу https://example.com/foo/new-package.txt 2. GA, доступные по адресу https://example.com/bar/new-package.txt Я хочу, чтобы пользователь ввел свой выбор Dev или GA и на основе что необходимо загрузить файлы, в сценарии оболочки есть лучший способ сделать это?

Существует файл с переменными среды, которые я использую в другом сценарии.

env_var . sh

#!/bin/bash

echo "Enter your release"
export release=''   #either Dev or GA

Этот файл будет получен из другого скрипта как

загрузка. sh

#!/bin/bash

. ./env_var.sh    #sourcing a environment var file

wget https://<Dev or GA URL>/new-package.txt 

Моя основная проблема заключается в том, как установить URL-адрес wget на основе выпуска, установленного в файле env_var. Любая помощь приветствуется.

1 Ответ

1 голос
/ 08 мая 2020

Рассматривали ли вы использование read для получения пользовательского ввода?

read -p 'Selection: ' choice

Затем вы могли бы передать ${choice} функции, которая имеет операторы case для URL-адресов:

get_url() {
    case $1 in
        'dev' ) wget https://example.com/foo/new-package.txt ;;
        'ga' ) wget https://example.com/bar/new-package.txt ;;
        \? ) echo "Invalid choice" ;;
    esac
}

Для получения дополнительной информации о read, хорошей ссылкой является Руководство TLDP по пользовательскому вводу .

Редактировать: Чтобы получить файл конфигурации, выполните команду source ${PATH_TO_FILE}. После этого вы сможете передать переменную функции get_url() для получения того же результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...