如何将变量切割为子变量

How to cut a variable to sub variable

我有一个存储的变量

TITLE:AUTHOR:PRICE:QUANTITY:SOLDQUANTITY

在这种情况下是

wrinkle in time:myauthor:50.00:20:50

我存储在

Result=`awk -F : -v "Title=" -v "Author=" 'tolower() == tolower(Title) && tolower() == tolower(Author)' BookDB.txt`

但是我想把它分成 4 个变量,比如

TITLE= "wrinkle in time"
AUTHOR= "myauthor"
PRICE= "50.00"
Quantity= "20"
UNIT= "50"

然后我想计算已售出的单位

enter unit sold: 3

wrinkle in time, myauthor, 50.00, 20, 50

after update

wrinkle in time, myauthor, 50.00, 17, 53

在此先感谢您的帮助!

您可以使用 read:

$result 分成您描述的不同变量
IFS=: read TITLE AUTHOR PRICE QUANTITY UNIT <<< "$result"

示例:

$ result="wrinkle in time:myauthor:50.00:20:50"
$ IFS=: read TITLE AUTHOR PRICE QUANTITY UNIT <<< "$result"
$ echo "$TITLE - by - $AUTHOR"
wrinkle in time - by - myauthor

您还可以使用 read 提示用户输入:

read -p "Enter units sold: " SOLDUNITS

这将存储在变量 $SOLDUNITS 中输入的值。然后,您可以根据需要使用它来更改 $QUANTITY$UNIT。要在 bash 中进行(整数)运算,您可以使用 $((expression)) 结构:

QUANTITY=$((QUANTITY-SOLDUNITS)) 

或者:

((QUANTITY-=SOLDUNITS))