我需要检查用户提供的引脚是否存在以及是否存在然后显示他们的名字和姓氏...我需要它在bash脚本中PS:我们有一个带有卡片,姓名,姓名,E / A的文件(以其他问题接受或否定)以及此格式的帐户余额:
0098876634569080 NIKOLAOU VASILEIOS Ε 25575
0033872234566751 MAVRAGANIS GEORGIOS Α 12345
我已经完成了这个
read -p "Insert Pin"
if ! grep $REPLY filename
then
echo "ERROR"
exit 1
else grep $REPLY filename
$V1=grep -c $REPLY filename
head -$v1 filename | : and then dunno :P
答案 0 :(得分:1)
当我收集它时,这实际上是一个关于从文件中读取字段的问题。 grep
不是一个好工具 - 如果在不同的字段(即余额)中找到PIN,或者给定的值只是PIN的子字符串,它会给你一个匹配(例如,如果用户输入了0
的PIN码。请考虑一下:
read -p "Insert Pin"
found=0
while read -r pin name surname has_accepted balance; do
# unlike grep, look ONLY in pin field, and ONLY for exact match
if [[ $pin = "$REPLY" ]]; then
found=1
echo "Name is $name; surname is $surname; balance is $balance; etc"
break # don't continue to look after we found a match
fi
done <filename
if ! (( found )); then
echo ERROR >&2
exit 1
fi
有关在bash中阅读数据的长篇讨论,请参阅BashFAQ #001。