example.txt 在下面
Restaurant: McDonalds
City: Miami
State: Florida
Address: 123 Biscayne Blvd
Phone: 911
Restaurant: 5 guys
City: Atlanta
State: Georgia
Address: 123 Peachtree Rd
Phone: 911
Restaurant: KFC
City: NYC
State: NY
Address: 123 Madison Square
Phone: 911
Run Code Online (Sandbox Code Playgroud)
我使用 bash 脚本,假设我想从上面的文件中按名称搜索餐厅。询问用户输入餐厅名称,它应该打印有关该餐厅的信息(5 行)。
awk '/McDonalds/> /KFC/' example.txt
Run Code Online (Sandbox Code Playgroud)
我知道上面的代码行将打印与模式“麦当劳”和“肯德基”匹配的整行,但这只会打印文本文件中的第一行,而不是有关该餐厅的其余信息。我如何告诉它仅从用户输入的餐厅名称中打印所有信息(5 行)?
我正在创建一个 bash 脚本,我想创建一个菜单。当我运行代码时,它会显示菜单,但问题是当用户输入一个选项时,无论选择什么选项,它都会不断重新打印菜单以一次又一次地询问。
#!/bin/bash
declare -i choice=1;
while ((choice!=5))
do
echo "Main Menu:"
echo -e "\t(a) Add"
echo -e "\t(b) Remove"
echo -e "\t(c) Seach"
echo -e "\t(d) Display"
echo -e "\t(e) Exit"
echo -n "Please enter your choice:"
read choice
case $choice in
"a"|"A")
echo "You entered a"
;;
"b"|"B")
echo "You entered b"
;;
"c"|"C")
echo "You entered c"
;;
"d"|"D")
echo "You entered d"
;;
"e"|"E")
echo "You entered e"
((choice=5))
;;
*)
echo "invalid answer"
;; …
Run Code Online (Sandbox Code Playgroud) 我想在选择时在选项“a”下创建更多菜单。如果用户输入选项“a”,我希望它有几个菜单供您选择,其中一个选项是返回“主菜单”。这是我遇到的两个问题。我尝试为此处的菜单执行与下面相同的格式,并将其放在“A”代码块下,但这不起作用。
#!/bin/bash
ok=0;
while ((ok==0))
do
echo "Main Menu:"
echo -e "\t(a) More Menu Options "
echo -e "\t(b) Exit"
echo -n "Please enter your choice:"
read choice
case $choice in
"a"|"A")
ok=1
;;
"b"|"B")
exit
;;
*)
echo "invalid answer, please try again"
;;
esac
done
Run Code Online (Sandbox Code Playgroud) 嗨,我正在使用 bash 脚本,下面有 example.txt。如何按餐厅名称将以下4个餐厅信息按字母顺序排列并打印出来?请注意,按字母顺序打印时的格式应与以下相同,包括城市、州、地址、电话。
Restaurant: McDonalds
City: Miami
State: Florida
Address: 123 Biscayne Blvd
Phone: 91341
Restaurant: Five guys
City: Atlanta
State: Georgia
Address: 123 Peachtree Rd
Phone: 9234211
Restaurant: KFC
City: NYC
State: NY
Address: 123 Madison Square
Phone: 95311
Restaurant: Taco Bell
City: LA
State: CA
Address: 123 Rodeo Drive
Phone: 911
Run Code Online (Sandbox Code Playgroud)