目前我正在做一个项目而且我被困住了。如果有人能帮助我,将会很有帮助。我正在使用Linux - Ubuntu系统。我使用Zenity作为我正在创建的图书库存系统的GUI。我现在面临的问题是我不知道如何将通过Zenity收集的数据传输到BookDB.txt。
=============================================== ====================
zenity --forms --title="New book" --text="Add new book" \
--add-entry="Title" \
--add-entry="Author" \
--add-entry="Price" \
--add-entry="Quantity Available" \
--add-entry="Quantity sold"
read title
read author
read price
read QtyA
read QtyS
echo $title:$author:$price:$available:$sold >> BookDB.txt
echo $BookDB "New book title ' $title ' added successfully "
=============================================== ====================
非常感谢你的帮助!
答案 0 :(得分:2)
zenity输出到stdout。对于表单,默认情况下,字段使用管道分隔。你想要这样做:
data=$(
zenity --forms --title="New book" --text="Add new book" \
--add-entry="Title" \
--add-entry="Author" \
--add-entry="Price" \
--add-entry="Quantity Available" \
--add-entry="Quantity sold"
)
case $? in
1) echo "you cancelled"; exit 1 ;;
-1) echo "some error occurred"; exit -1 ;;
0) IFS="|" read -r title author price qtyA qtyS <<< "$data" ;;
esac
如果您不习惯使用pipe作为输出分隔符,则可以选择--separator
。例如,您可能希望使用“FS”字符:--separator=$'\034'
,然后IFS=$'\034' read -r a b c d e <<<"$data"
我发现zenity的文档非常简洁,但这是官方手册:https://help.gnome.org/users/zenity/stable/