从文本文件读取输入,Bash脚本



我是在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

要将文件中的输入注入到交互式脚本中,我要做的只是:

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

如果您的脚本更复杂,请考虑使用"expect",尽管这相当复杂。

BRs

相关内容

  • 没有找到相关文章

最新更新