如何将变量切割为子变量
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))
我有一个存储的变量
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))