我有这样一个练习:创建一个BASH shell脚本“menu”,它接受一个文件“listino.txt”作为参数,结构如下:
成本数量代码01953 2 15 07934 1 20 084 Gd 10 30 9038 H 1 5
并且实现可从菜单访问的以下功能:
1.搜索-要求用户输入要在整个价目表中搜索的字符串并执行搜索
1.添加-要求用户输入要添加的产品代码(价目表的第一个字段)和所需的项目数量,验证所做的选择并将其存储在购物车文件中
1.删除-从购物车中删除产品
但是删除功能对我不起作用,你能帮帮我吗(这是最后一种情况)
#!/bin/bash
cat listino.txt
echo "Vuoi fare : ricerca/inserimento/eliminazione? "
read answer
case $answer in
ricerca)
echo "Inserisci stringa da cercare:\n"
read stringa
if awk "${stringa}" listino.txt
then
echo "Stringa e presente in listino"
else
echo "Stringa non presente in listino"
fi
;;
inserimento)
echo "Inserisci codice prodotto:\n"
read codice
echo "Inserisci quantita prodotto:\n"
read quantita
a="$codice $quantita"
echo $a >> carrello.txt
;;
eliminazione)
echo "quale prodotto vuoi eliminare:"
read prodottoEliminare
a="$prodottoEliminare"
for stringa in carrello.txt ; do
if [ "$stringa"=="$a" ];
then
echo "Elemento cancellato"
else
echo "Elemento non cancellato"
fi
done
;;
*)
esac
谢谢
1条答案
按热度按时间ufj5ltwl1#
你可以用不同的方法来做这件事。
一个是
如果你想要一些反馈,你可以先用
grep
测试(或者像ricerca)
一样用awk
测试),然后用sed
删除:从你问题中的评论来看,
sed
命令似乎在你的Mac上不起作用。我对Mac了解不够,但你总是可以用其他东西来替换它。我想到的一个解决方案是再次使用grep
,但要颠倒过来(查找除该字符串之外的任何东西):