Интерактивный скрипт Bash

Возможно ли предоставить более одной переменной, которая должна быть выполнена в первом приглашении? в первом приглашении я хотел бы предоставить 1 или 2 до 5 переменных, которые выполняют определенный скрипт в течение одного сеанса.

eg:

echo -n "Enter the script you want to launch and press [ENTER] read script

вместо скрипта $, я хотел бы иметь некоторую альтернативу, такую ​​как

читать script1 или script2 ... до script5 [ ! d3]

, который позволяет мне запускать с этим одиночным запуском любое количество сценариев #i и в любой комбинации (например, 1 и 2, 1 и 3 и 5 и т. д.)

echo "Hello, "$USER". This script will allow you to start $ echo "1. Claymore ZEC v12.6" echo "2. Claymore ETH & SIA v10" echo "3. Claymore ETH v10" echo "4. XMRIG ETN v2.4.4 //etn-pool.proxpool" echo "5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org" echo "6. Quit" echo -n "Enter the script you want to launch and press [ENT$ read script case $script in 1) echo "Starting to mine ZEC." cd ~/Downloads/claymore.s.Zcash.v12.6/; ./mine.sh; ;; 2) echo "Starting to mine ETH & SIA." cd ~/Downloads/claymore.dualminer.v10_ETHSIA/; ./mine.sh; ;; 3) echo "Starting to mine ETH." cd ~/Downloads/claymore.dualminer.v10_ETHSIA/; ./mineETH.sh; ;; 4) echo "Starting to mine ETN." cd ~/Downloads/Electroneum/XMRIG/build/; sudo sysctl -w vm.nr_hugepages=128; clear; cat /proc/meminfo | grep Huge; ./mine.sh; ;; 5) echo "Starting to mine ETN." cd ~/Downloads/Electroneum/XMRIG/build/; sudo sysctl -w vm.nr_hugepages=128; clear; cat /proc/meminfo | grep Huge; ./mine_space.sh; ;; 6) echo "Quit" ;; esac
2
задан 22 January 2018 в 18:27

6 ответов

Я бросил один для вас на основе комментария, оставленного от @steeldriver. Это всего лишь сценарий командной строки, допускающий множественный ввод в командной строке. Он использует getopts для нескольких опций, а также добавляет в nohup command & для перемещения сценариев на задний план, чтобы следующий случай мог работать.

Для получения дополнительной помощи выполните поиск в Интернете для bash getopts. Есть так много, чтобы учиться там, и вы можете сделать невероятные сценарии, чтобы делать все, что хотите.

Сценарий:

#!/bin/bash

#Set name
NAME=$(basename $0)

#Set option choices
OPTS="h12345"
PUSAGE=""

#This is how to use the script
usage="
Hello, "$USER".  This script will allow you to start the following. 
You can run as many as you like starting with a `-`.  Example below.

Usage:  ${NAME} [OPTIONS]

Options are:
  -h  Show this message.
  -1. Claymore ZEC v12.6
  -2. Claymore ETH & SIA v10
  -3. Claymore ETH  v10
  -4. XMRIG ETN v2.4.4 //etn-pool.proxpool
  -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org

Example:

${NAME} -135
"

#Run script
while getopts :${OPTS} i ; do
    case $i in
    1) 
      echo "Starting to mine ZEC."
      cd ~/Downloads/claymore.s.Zcash.v12.6/
      nohup ./mine.sh & 2>&1>/dev/null;;
    2)
      echo "Starting to mine ETH & SIA."
      cd ~/Downloads/claymore.dualminer.v10_ETHSIA/
      nohup ./mine.sh & 2>&1>/dev/null;;
    3)
      echo "Starting to mine ETH."
      cd ~/Downloads/claymore.dualminer.v10_ETHSIA/
      nohup ./mineETH.sh & 2>&1>/dev/null;;
    4)
      echo "Starting to mine ETN."
      cd ~/Downloads/Electroneum/XMRIG/build/
      sudo sysctl -w vm.nr_hugepages=128
      clear
      cat /proc/meminfo | grep Huge
      nohup ./mine.sh & 2>&1>/dev/null;;
    5)
      echo "Starting to mine ETN."
      cd ~/Downloads/Electroneum/XMRIG/build/
      sudo sysctl -w vm.nr_hugepages=128
      clear
      cat /proc/meminfo | grep Huge
      nohup ./mine_space.sh & 2>&1>/dev/null;;
    h | \?) PUSAGE=1;;
    esac
done

#Show help based on selection
if [ ${PUSAGE} ]; then
    echo "${usage}"
    exit 0
fi

#Check for input if none show help.
if [[ $1 == "" ]]; then
    echo "${usage}"
    exit 0
fi

Теперь, если вы запустите скрипт с ничем после или a -h для справки, появляется следующее. Я назвал свой скрипт askhelp.bsh как пример.

~$ ./askhelp.bsh

Hello, terrance.  This script will allow you to start the following. 
You can run as many as you like separated by spaces and dashes. Example below.

Usage:  askhelp.bsh [OPTIONS]

Options are:
  -h  Show this message.
  -1. Claymore ZEC v12.6
  -2. Claymore ETH & SIA v10
  -3. Claymore ETH  v10
  -4. XMRIG ETN v2.4.4 //etn-pool.proxpool
  -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org

Example:

askhelp.bsh -135

Тогда в моем тестовом скрипте я сделал так, чтобы он повторял строки, чтобы показать, что они запущены.

Сценарий:

~$ ./askhelp.bsh -135
Starting Option 1
Starting to mine ZEC.
cd ~/Downloads/claymore.s.Zcash.v12.6/
nohup ./mine.sh & 2>&1>/dev/null
Starting Option 3
Starting to mine ETH.
cd ~/Downloads/claymore.dualminer.v10_ETHSIA/
nohup ./mineETH.sh & 2>&1>/dev/null
Starting Option 5
Starting to mine ETN.
cd ~/Downloads/Electroneum/XMRIG/build/
sudo sysctl -w vm.nr_hugepages=128
clear
cat /proc/meminfo | grep Huge
nohup ./mine_space.sh & 2>&1>/dev/null

Другой пример:

~$ ./askhelp.bsh -24
Starting Option 2
Starting to mine ETH & SIA.
cd ~/Downloads/claymore.dualminer.v10_ETHSIA/
nohup ./mine.sh & 2>&1>/dev/null
Starting Option 4
Starting to mine ETN.
cd ~/Downloads/Electroneum/XMRIG/build/
sudo sysctl -w vm.nr_hugepages=128
clear
cat /proc/meminfo | grep Huge
nohup ./mine.sh & 2>&1>/dev/null

Новый скрипт из запроса:

Этот скрипт должен открыть новый gnome-terminal для каждого выбора, сделанного для отслеживания. Команды выполняются для gnome-terminal. Если вы решите использовать другой терминал, убедитесь, что вы вносили соответствующие изменения в команду в каждом случае.

#!/bin/bash

#Set name
NAME=$(basename $0)

#Set option choices
OPTS="h12345"
PUSAGE=""

#This is how to use the script
usage="
Hello, "$USER".  This script will allow you to start the following. 
You can run as many as you like starting with a `-`.  Example below.

Usage:  ${NAME} [OPTIONS]

Options are:
  -h  Show this message.
  -1. Claymore ZEC v12.6
  -2. Claymore ETH & SIA v10
  -3. Claymore ETH  v10
  -4. XMRIG ETN v2.4.4 //etn-pool.proxpool
  -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org

Example:

${NAME} -135
"

#Run script
while getopts :${OPTS} i ; do
    case $i in
    1) 
      gnome-terminal -x bash -c 'echo "Starting to mine ZEC."; cd ~/Downloads/claymore.s.Zcash.v12.6/; ./mine.sh';;
    2)
      gnome-terminal -x bash -c 'echo "Starting to mine ETH & SIA."; cd ~/Downloads/claymore.dualminer.v10_ETHSIA/; ./mine.sh';;
    3)
      gnome-terminal -x bash -c 'echo "Starting to mine ETH."; cd ~/Downloads/claymore.dualminer.v10_ETHSIA/; ./mineETH.sh';;
    4)
      gnome-terminal -x bash -c 'echo "Starting to mine ETN."; cd ~/Downloads/Electroneum/XMRIG/build/; sudo sysctl -w vm.nr_hugepages=128; clear; cat /proc/meminfo | grep Huge; ./mine.sh';;
    5)
      gnome-terminal -x bash -c 'echo "Starting to mine ETN."; cd ~/Downloads/Electroneum/XMRIG/build/; sudo sysctl -w vm.nr_hugepages=128; clear; cat /proc/meminfo | grep Huge; ./mine_space.sh';;
    h | \?) PUSAGE=1;;
    esac
done

#Show help based on selection
if [ ${PUSAGE} ]; then
    echo "${usage}"
    exit 0
fi

#Check for input if none show help.
if [[ $1 == "" ]]; then
    echo "${usage}"
    exit 0
fi

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

1
ответ дан 22 May 2018 в 15:22
  • 1
    Большое вам спасибо за ваши усилия. Когда я попробую, например. mining.sh -1 -3 -5 Я получил подтверждение " эхо " что запущен только -1 скрипт, но ни в верхней команде, ни в новом открытом сеансе терминала (он должен автоматически открываться, правда?) Я не вижу, что дополнительные сценарии в моем случае -3 и -5 начались. – Harry Keogh 22 January 2018 в 21:56
  • 2
    @HarryKeogh Ой, я забыл бросить свои сценарии в фоновом режиме. Исправлен скрипт. – Terrance 22 January 2018 в 21:58
  • 3
    @HarryKeogh Я не знаю, получили ли вы последнее сообщение, но я добавил в & сценарии, чтобы отбросить их на задний план, чтобы следующие сценарии могли запускаться. У меня нет ваших скриптов, – Terrance 22 January 2018 в 23:43
  • 4
    о да, это намного лучше :) любой шанс, чтобы на самом деле вспомнить новую сессию терминала за каждый выбранный вариант? так что вы действительно можете увидеть, что делает конкретный скрипт - это было бы прекрасно! – Harry Keogh 23 January 2018 в 10:19
  • 5
    @HarryKeogh, я думаю, вы могли бы. Вы можете сделать каждый раздел вместо отдельных строк в одну строку, которая выглядит так gnome-terminal -x bash -c 'echo "Starting to mine ZEC."; cd ~/Downloads/claymore.s.Zcash.v12.6/; nohup ./mine.sh & 2>&1>/dev/null';; – Terrance 23 January 2018 в 10:35

Я бросил один для вас на основе комментария, оставленного от @steeldriver. Это всего лишь сценарий командной строки, допускающий множественный ввод в командной строке. Он использует getopts для нескольких опций, а также добавляет в nohup command & для перемещения сценариев на задний план, чтобы следующий случай мог работать.

Для получения дополнительной помощи выполните поиск в Интернете для bash getopts. Есть так много, чтобы учиться там, и вы можете сделать невероятные сценарии, чтобы делать все, что хотите.

Сценарий:

#!/bin/bash #Set name NAME=$(basename $0) #Set option choices OPTS="h12345" PUSAGE="" #This is how to use the script usage=" Hello, "$USER". This script will allow you to start the following. You can run as many as you like starting with a `-`. Example below. Usage: ${NAME} [OPTIONS] Options are: -h Show this message. -1. Claymore ZEC v12.6 -2. Claymore ETH & SIA v10 -3. Claymore ETH v10 -4. XMRIG ETN v2.4.4 //etn-pool.proxpool -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org Example: ${NAME} -135 " #Run script while getopts :${OPTS} i ; do case $i in 1) echo "Starting to mine ZEC." cd ~/Downloads/claymore.s.Zcash.v12.6/ nohup ./mine.sh & 2>&1>/dev/null;; 2) echo "Starting to mine ETH & SIA." cd ~/Downloads/claymore.dualminer.v10_ETHSIA/ nohup ./mine.sh & 2>&1>/dev/null;; 3) echo "Starting to mine ETH." cd ~/Downloads/claymore.dualminer.v10_ETHSIA/ nohup ./mineETH.sh & 2>&1>/dev/null;; 4) echo "Starting to mine ETN." cd ~/Downloads/Electroneum/XMRIG/build/ sudo sysctl -w vm.nr_hugepages=128 clear cat /proc/meminfo | grep Huge nohup ./mine.sh & 2>&1>/dev/null;; 5) echo "Starting to mine ETN." cd ~/Downloads/Electroneum/XMRIG/build/ sudo sysctl -w vm.nr_hugepages=128 clear cat /proc/meminfo | grep Huge nohup ./mine_space.sh & 2>&1>/dev/null;; h | \?) PUSAGE=1;; esac done #Show help based on selection if [ ${PUSAGE} ]; then echo "${usage}" exit 0 fi #Check for input if none show help. if [[ $1 == "" ]]; then echo "${usage}" exit 0 fi

Теперь, если вы запустите скрипт с ничем после или a -h для справки, появляется следующее. Я назвал свой скрипт askhelp.bsh как пример.

~$ ./askhelp.bsh Hello, terrance. This script will allow you to start the following. You can run as many as you like separated by spaces and dashes. Example below. Usage: askhelp.bsh [OPTIONS] Options are: -h Show this message. -1. Claymore ZEC v12.6 -2. Claymore ETH & SIA v10 -3. Claymore ETH v10 -4. XMRIG ETN v2.4.4 //etn-pool.proxpool -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org Example: askhelp.bsh -135

Тогда в моем тестовом скрипте я сделал так, чтобы он повторял строки, чтобы показать, что они запущены.

Сценарий:

~$ ./askhelp.bsh -135 Starting Option 1 Starting to mine ZEC. cd ~/Downloads/claymore.s.Zcash.v12.6/ nohup ./mine.sh & 2>&1>/dev/null Starting Option 3 Starting to mine ETH. cd ~/Downloads/claymore.dualminer.v10_ETHSIA/ nohup ./mineETH.sh & 2>&1>/dev/null Starting Option 5 Starting to mine ETN. cd ~/Downloads/Electroneum/XMRIG/build/ sudo sysctl -w vm.nr_hugepages=128 clear cat /proc/meminfo | grep Huge nohup ./mine_space.sh & 2>&1>/dev/null

Другой пример:

~$ ./askhelp.bsh -24 Starting Option 2 Starting to mine ETH & SIA. cd ~/Downloads/claymore.dualminer.v10_ETHSIA/ nohup ./mine.sh & 2>&1>/dev/null Starting Option 4 Starting to mine ETN. cd ~/Downloads/Electroneum/XMRIG/build/ sudo sysctl -w vm.nr_hugepages=128 clear cat /proc/meminfo | grep Huge nohup ./mine.sh & 2>&1>/dev/null

Новый скрипт из запроса:

Этот скрипт должен открыть новый gnome-terminal для каждого выбора, сделанного для отслеживания. Команды выполняются для gnome-terminal. Если вы решите использовать другой терминал, убедитесь, что вы вносили соответствующие изменения в команду в каждом случае.

#!/bin/bash #Set name NAME=$(basename $0) #Set option choices OPTS="h12345" PUSAGE="" #This is how to use the script usage=" Hello, "$USER". This script will allow you to start the following. You can run as many as you like starting with a `-`. Example below. Usage: ${NAME} [OPTIONS] Options are: -h Show this message. -1. Claymore ZEC v12.6 -2. Claymore ETH & SIA v10 -3. Claymore ETH v10 -4. XMRIG ETN v2.4.4 //etn-pool.proxpool -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org Example: ${NAME} -135 " #Run script while getopts :${OPTS} i ; do case $i in 1) gnome-terminal -x bash -c 'echo "Starting to mine ZEC."; cd ~/Downloads/claymore.s.Zcash.v12.6/; ./mine.sh';; 2) gnome-terminal -x bash -c 'echo "Starting to mine ETH & SIA."; cd ~/Downloads/claymore.dualminer.v10_ETHSIA/; ./mine.sh';; 3) gnome-terminal -x bash -c 'echo "Starting to mine ETH."; cd ~/Downloads/claymore.dualminer.v10_ETHSIA/; ./mineETH.sh';; 4) gnome-terminal -x bash -c 'echo "Starting to mine ETN."; cd ~/Downloads/Electroneum/XMRIG/build/; sudo sysctl -w vm.nr_hugepages=128; clear; cat /proc/meminfo | grep Huge; ./mine.sh';; 5) gnome-terminal -x bash -c 'echo "Starting to mine ETN."; cd ~/Downloads/Electroneum/XMRIG/build/; sudo sysctl -w vm.nr_hugepages=128; clear; cat /proc/meminfo | grep Huge; ./mine_space.sh';; h | \?) PUSAGE=1;; esac done #Show help based on selection if [ ${PUSAGE} ]; then echo "${usage}" exit 0 fi #Check for input if none show help. if [[ $1 == "" ]]; then echo "${usage}" exit 0 fi

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

1
ответ дан 17 July 2018 в 22:28

Я бросил один для вас на основе комментария, оставленного от @steeldriver. Это всего лишь сценарий командной строки, допускающий множественный ввод в командной строке. Он использует getopts для нескольких опций, а также добавляет в nohup command & для перемещения сценариев на задний план, чтобы следующий случай мог работать.

Для получения дополнительной помощи выполните поиск в Интернете для bash getopts. Есть так много, чтобы учиться там, и вы можете сделать невероятные сценарии, чтобы делать все, что хотите.

Сценарий:

#!/bin/bash #Set name NAME=$(basename $0) #Set option choices OPTS="h12345" PUSAGE="" #This is how to use the script usage=" Hello, "$USER". This script will allow you to start the following. You can run as many as you like starting with a `-`. Example below. Usage: ${NAME} [OPTIONS] Options are: -h Show this message. -1. Claymore ZEC v12.6 -2. Claymore ETH & SIA v10 -3. Claymore ETH v10 -4. XMRIG ETN v2.4.4 //etn-pool.proxpool -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org Example: ${NAME} -135 " #Run script while getopts :${OPTS} i ; do case $i in 1) echo "Starting to mine ZEC." cd ~/Downloads/claymore.s.Zcash.v12.6/ nohup ./mine.sh & 2>&1>/dev/null;; 2) echo "Starting to mine ETH & SIA." cd ~/Downloads/claymore.dualminer.v10_ETHSIA/ nohup ./mine.sh & 2>&1>/dev/null;; 3) echo "Starting to mine ETH." cd ~/Downloads/claymore.dualminer.v10_ETHSIA/ nohup ./mineETH.sh & 2>&1>/dev/null;; 4) echo "Starting to mine ETN." cd ~/Downloads/Electroneum/XMRIG/build/ sudo sysctl -w vm.nr_hugepages=128 clear cat /proc/meminfo | grep Huge nohup ./mine.sh & 2>&1>/dev/null;; 5) echo "Starting to mine ETN." cd ~/Downloads/Electroneum/XMRIG/build/ sudo sysctl -w vm.nr_hugepages=128 clear cat /proc/meminfo | grep Huge nohup ./mine_space.sh & 2>&1>/dev/null;; h | \?) PUSAGE=1;; esac done #Show help based on selection if [ ${PUSAGE} ]; then echo "${usage}" exit 0 fi #Check for input if none show help. if [[ $1 == "" ]]; then echo "${usage}" exit 0 fi

Теперь, если вы запустите скрипт с ничем после или a -h для справки, появляется следующее. Я назвал свой скрипт askhelp.bsh как пример.

~$ ./askhelp.bsh Hello, terrance. This script will allow you to start the following. You can run as many as you like separated by spaces and dashes. Example below. Usage: askhelp.bsh [OPTIONS] Options are: -h Show this message. -1. Claymore ZEC v12.6 -2. Claymore ETH & SIA v10 -3. Claymore ETH v10 -4. XMRIG ETN v2.4.4 //etn-pool.proxpool -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org Example: askhelp.bsh -135

Тогда в моем тестовом скрипте я сделал так, чтобы он повторял строки, чтобы показать, что они запущены.

Сценарий:

~$ ./askhelp.bsh -135 Starting Option 1 Starting to mine ZEC. cd ~/Downloads/claymore.s.Zcash.v12.6/ nohup ./mine.sh & 2>&1>/dev/null Starting Option 3 Starting to mine ETH. cd ~/Downloads/claymore.dualminer.v10_ETHSIA/ nohup ./mineETH.sh & 2>&1>/dev/null Starting Option 5 Starting to mine ETN. cd ~/Downloads/Electroneum/XMRIG/build/ sudo sysctl -w vm.nr_hugepages=128 clear cat /proc/meminfo | grep Huge nohup ./mine_space.sh & 2>&1>/dev/null

Другой пример:

~$ ./askhelp.bsh -24 Starting Option 2 Starting to mine ETH & SIA. cd ~/Downloads/claymore.dualminer.v10_ETHSIA/ nohup ./mine.sh & 2>&1>/dev/null Starting Option 4 Starting to mine ETN. cd ~/Downloads/Electroneum/XMRIG/build/ sudo sysctl -w vm.nr_hugepages=128 clear cat /proc/meminfo | grep Huge nohup ./mine.sh & 2>&1>/dev/null

Новый скрипт из запроса:

Этот скрипт должен открыть новый gnome-terminal для каждого выбора, сделанного для отслеживания. Команды выполняются для gnome-terminal. Если вы решите использовать другой терминал, убедитесь, что вы вносили соответствующие изменения в команду в каждом случае.

#!/bin/bash #Set name NAME=$(basename $0) #Set option choices OPTS="h12345" PUSAGE="" #This is how to use the script usage=" Hello, "$USER". This script will allow you to start the following. You can run as many as you like starting with a `-`. Example below. Usage: ${NAME} [OPTIONS] Options are: -h Show this message. -1. Claymore ZEC v12.6 -2. Claymore ETH & SIA v10 -3. Claymore ETH v10 -4. XMRIG ETN v2.4.4 //etn-pool.proxpool -5. XMRIG ETN v2.4.4 //pool.etn.spacepools.org Example: ${NAME} -135 " #Run script while getopts :${OPTS} i ; do case $i in 1) gnome-terminal -x bash -c 'echo "Starting to mine ZEC."; cd ~/Downloads/claymore.s.Zcash.v12.6/; ./mine.sh';; 2) gnome-terminal -x bash -c 'echo "Starting to mine ETH & SIA."; cd ~/Downloads/claymore.dualminer.v10_ETHSIA/; ./mine.sh';; 3) gnome-terminal -x bash -c 'echo "Starting to mine ETH."; cd ~/Downloads/claymore.dualminer.v10_ETHSIA/; ./mineETH.sh';; 4) gnome-terminal -x bash -c 'echo "Starting to mine ETN."; cd ~/Downloads/Electroneum/XMRIG/build/; sudo sysctl -w vm.nr_hugepages=128; clear; cat /proc/meminfo | grep Huge; ./mine.sh';; 5) gnome-terminal -x bash -c 'echo "Starting to mine ETN."; cd ~/Downloads/Electroneum/XMRIG/build/; sudo sysctl -w vm.nr_hugepages=128; clear; cat /proc/meminfo | grep Huge; ./mine_space.sh';; h | \?) PUSAGE=1;; esac done #Show help based on selection if [ ${PUSAGE} ]; then echo "${usage}" exit 0 fi #Check for input if none show help. if [[ $1 == "" ]]; then echo "${usage}" exit 0 fi

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

1
ответ дан 23 July 2018 в 23:07

Вы можете использовать команду bash read, чтобы получить несколько параметров от пользователя.

Нижеприведенный пример был взят из учебника ввода bash

Нижеприведенный скрипт читает 3 входных параметра в одной команде read и использовать эти 3 уникальных параметра позже в скрипте.

cars.sh script

#!/bin/bash
# Demonstrate how read actually works
echo What cars do you like?
read car1 car2 car3
echo Your first car was: $car1
echo Your second car was: $car2
echo Your third car was: $car3

cars.sh script

./cars.sh
What cars do you like?
Jaguar Maserati Bentley
Your first car was: Jaguar
Your second car was: Maserati
Your third car was: Bentley
./cars.sh
What cars do you like?
Jaguar Maserati Bentley Lotus
Your first car was: Jaguar
Your second car was: Maserati
Your third car was: Bentley Lotus
1
ответ дан 22 May 2018 в 15:22
  • 1
    но иногда вы знаете, что я просто даю один вариант smetimes 3 или 4, я бы хотел, чтобы скрипт выполнил все соответствующие параметры в течение одного сеанса терминала :) – Harry Keogh 22 January 2018 в 17:22
  • 2
    @HarryKeogh - Вопрос, поднятый в вашем комментарии, является новой проблемой, которая не упоминалась в вашем вопросе. Если вы хотите ответить на него, пожалуйста, отредактируйте свой вопрос (или задайте новый вопрос) и укажите точную проблему, с которой вы сталкиваетесь, с некоторыми примерами - как вы хотите ее использовать и т. Д. – Yaron 22 January 2018 в 17:25
  • 3
    по моему вкусу, это по-прежнему один и тот же случай, сначала я хотел бы предоставить 1 или 2 до 5 переменных, которые выполняют конкретный скрипт в течение одного сеанса. – Harry Keogh 22 January 2018 в 17:29
  • 4
    @HarryKeogh - если вы хотите получить ответ, который решит ваш вопрос, вы должны убедиться, что отредактируете свой вопрос и убедитесь, что он четко описывает вашу проблему, добавив несколько примеров ожидаемого поведения, поможет вам определите свою проблему / вопрос. – Yaron 22 January 2018 в 17:32
  • 5
    Я изменил это, теперь лучше? – Harry Keogh 22 January 2018 в 17:39

Вы можете использовать команду bash read, чтобы получить несколько параметров от пользователя.

Нижеприведенный пример был взят из учебника ввода bash

Нижеприведенный скрипт читает 3 входных параметра в одной команде read и использовать эти 3 уникальных параметра позже в скрипте.

cars.sh script

#!/bin/bash # Demonstrate how read actually works echo What cars do you like? read car1 car2 car3 echo Your first car was: $car1 echo Your second car was: $car2 echo Your third car was: $car3

cars.sh script

./cars.sh What cars do you like? Jaguar Maserati Bentley Your first car was: Jaguar Your second car was: Maserati Your third car was: Bentley ./cars.sh What cars do you like? Jaguar Maserati Bentley Lotus Your first car was: Jaguar Your second car was: Maserati Your third car was: Bentley Lotus
1
ответ дан 17 July 2018 в 22:28

Вы можете использовать команду bash read, чтобы получить несколько параметров от пользователя.

Нижеприведенный пример был взят из учебника ввода bash

Нижеприведенный скрипт читает 3 входных параметра в одной команде read и использовать эти 3 уникальных параметра позже в скрипте.

cars.sh script

#!/bin/bash # Demonstrate how read actually works echo What cars do you like? read car1 car2 car3 echo Your first car was: $car1 echo Your second car was: $car2 echo Your third car was: $car3

cars.sh script

./cars.sh What cars do you like? Jaguar Maserati Bentley Your first car was: Jaguar Your second car was: Maserati Your third car was: Bentley ./cars.sh What cars do you like? Jaguar Maserati Bentley Lotus Your first car was: Jaguar Your second car was: Maserati Your third car was: Bentley Lotus
1
ответ дан 23 July 2018 в 23:07
  • 1
    но иногда вы знаете, что я просто даю один вариант smetimes 3 или 4, я бы хотел, чтобы скрипт выполнил все соответствующие параметры в течение одного сеанса терминала :) – Harry Keogh 22 January 2018 в 17:22
  • 2
    @HarryKeogh - вопрос, поднятый в вашем комментарии, это новый вопрос, который не упомянули в своем вопросе. Если вы хотите ответить за это - пожалуйста, редактировать Ваш вопрос (или задать новый вопрос) и указать точную проблему вы столкнулись, с примерами - как бы вы хотели использовать его, и т. д. – Yaron 22 January 2018 в 17:25
  • 3
    по моему вкусу, это по-прежнему один и тот же случай, сначала я хотел бы предоставить 1 или 2 до 5 переменных, которые выполняют конкретный скрипт в течение одного сеанса. – Harry Keogh 22 January 2018 в 17:29
  • 4
    @HarryKeogh - если вы хотите получить ответ, который решит ваш вопрос, вы должны убедиться, что отредактируете свой вопрос и убедитесь, что он четко описывает вашу проблему, добавив несколько примеров ожидаемого поведения, поможет вам определите свою проблему / вопрос. – Yaron 22 January 2018 в 17:32
  • 5
    Я изменил это, теперь лучше? – Harry Keogh 22 January 2018 в 17:39

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

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