Чтение во входных данных из текстового файла, Bash скрипт - PullRequest
0 голосов
/ 06 марта 2020

Я новичок в написании сценариев на Bash и работаю над заданием по созданию системы инвентаризации. Я написал все сценарии, и все они работают с использованием стандартного терминала ввода. Теперь я собираюсь взять входные данные из текстового файла с именем a1Input.txt, который содержит все входные данные в новой строке.

r
9823
r
5430
c
7777
sml_widget
Small Widget (1 oz.)
6.99
15
50
Small, white, widget w/o packaging
r
7777
d
9823
r
9823
r
3293
u
3293


29.99
33
75


r
3293


Код моего начального bash сценария такой:

#!/bin/bash

# assign1.bash

shopt -s nocasematch

option=""
until [ "$option" = "F" ]; do
echo "C - create a new item"
echo "R - read an existing item"
echo "U - update an existing item"
echo "D - delete an existing item"
echo "T - total price of an item"
echo "Choose a option"
read option
case $option in
C)
./create.bash
;;R)
./read.bash
;;U)
./update.bash
;;D)
./delete.bash
;;T)
./total.bash
;;*) 
echo "Invalid input"



esac
done


1 Ответ

0 голосов
/ 06 марта 2020

То, что я хотел бы сделать для ввода данных из файла в интерактивный скрипт, это просто:

cat a1Input.txt | ./interactive_script.sh

Например, представьте себе этот простой скрипт (копирование-вставка на терминале для создания):

cat << EOF > questions.sh
#!/bin/bash
echo "What's your name ?"
read name
echo "What is your favourite movie ?"
read movie
echo "Hi \$name, i also love '\$movie' movie !!"
EOF

И эти входные данные:

cat << EOF > inputs.txt
Edu
Interstellar
EOF

Затем просто выполните:

chmod a+x questions.sh
cat inputs.txt | ./questions.sh

Если ваш сценарий более сложный, подумайте об использовании «ожидайте», хотя это довольно сложно.

BRs

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