Самый простой способ сделать это — нажать Ctrl + Z(приостановить выполнение скрипта )после того, как вы закончите ввод входных данных, а затем bg
который отправит скрипт в фоновом режиме и продолжить его выполнение. Затем вы можете использовать текущий сеанс оболочки в обычном режиме.
Однако лучшим подходом является изменение сценария таким образом, чтобы он не требовал ввода данных пользователем. Просто передайте любой ввод, который вам нужен, в качестве аргументов при запуске скрипта. Это сделает вашу жизнь и жизнь ваших пользователей проще.
Например, вместо этого:
#!/bin/bash
echo "Give me the first number! "
read num1
echo "Give me the second number! "
read num2
Используйте это:
#!/bin/bash
num1=$1
num2=$2
И запустите свой скрипт следующим образом (, где 10
и 30
— это примеры номеров, которые будут сохранены как num1
и num2
соответственно):
script.sh 10 30 > out 2>err&
Таким образом, сценарий будет немедленно отправлен в фоновый режим, любой вывод будет перенаправлен в файл с именем out
, а все сообщения об ошибках — в файл с именем err
. Все параметры были настроены во время запуска, и дальнейшее взаимодействие не требуется.
Как правило, по возможности избегайте того, чтобы сценарии требовали ввода данных пользователем. Необходимость вводить данные для подачи сценария трудоемка, подвержена ошибкам, ее гораздо сложнее автоматизировать, а также усложняет повторение той же операции позже.
Если вы имеете в виду все IP-адреса, принадлежащие определенному имени, вы можете попробовать что-то вродеdig(1)
:
$ dig -t A google.com
; <<>> DiG 9.16.15-RH <<>> -t A google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62945
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 212 IN A 64.233.186.101
google.com. 212 IN A 64.233.186.138
google.com. 212 IN A 64.233.186.139
google.com. 212 IN A 64.233.186.113
google.com. 212 IN A 64.233.186.100
google.com. 212 IN A 64.233.186.102
;; Query time: 21 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Wed May 19 23:43:09 -04 2021
;; MSG SIZE rcvd: 135
-t A
запрашивает A
записи (, то есть IPv4-адреса ). С помощью -t AAAA
вы запрашиваете адреса IPv6. Мягкое массирование (удаление строк, начинающихся с ;
, и пустых строк )дает вам именно то, что вы хотите.
Команда (, устаревшая в течение достаточно долгого времени,)host(1)
предоставляет аналогичную информацию в несколько более удобном -для человека формате.