ในสถานการณ์ของฉันฉันจำเป็นต้องตอบคำถามโดยไม่มี Y หรือ N แต่ใช้ข้อความหรือว่างเปล่า ฉันพบวิธีที่ดีที่สุดในการดำเนินการนี้ในสถานการณ์ของฉันคือการสร้างไฟล์ shellscript ในกรณีของฉันฉันเรียกมันว่า autocomplete.sh
ฉันจำเป็นต้องตอบคำถามบางอย่างสำหรับผู้ส่งออกสคีมาหลักคำสอนไฟล์ของฉันจึงมีลักษณะเช่นนี้
- นี่คือตัวอย่างเท่านั้น -
php vendor/bin/mysql-workbench-schema-export mysqlworkbenchfile.mwb ./doctrine << EOF
`#Export to Doctrine Annotation Format` 1
`#Would you like to change the setup configuration before exporting` y
`#Log to console` y
`#Log file` testing.log
`#Filename [%entity%.%extension%]`
`#Indentation [4]`
`#Use tabs [no]`
`#Eol delimeter (win, unix) [win]`
`#Backup existing file [yes]`
`#Add generator info as comment [yes]`
`#Skip plural name checking [no]`
`#Use logged storage [no]`
`#Sort tables and views [yes]`
`#Export only table categorized []`
`#Enhance many to many detection [yes]`
`#Skip many to many tables [yes]`
`#Bundle namespace []`
`#Entity namespace []`
`#Repository namespace []`
`#Use automatic repository [yes]`
`#Skip column with relation [no]`
`#Related var name format [%name%%related%]`
`#Nullable attribute (auto, always) [auto]`
`#Generated value strategy (auto, identity, sequence, table, none) [auto]`
`#Default cascade (persist, remove, detach, merge, all, refresh, ) [no]`
`#Use annotation prefix [ORM\]`
`#Skip getter and setter [no]`
`#Generate entity serialization [yes]`
`#Generate extendable entity [no]` y
`#Quote identifier strategy (auto, always, none) [auto]`
`#Extends class []`
`#Property typehint [no]`
EOF
สิ่งที่ฉันชอบเกี่ยวกับกลยุทธ์นี้คือคุณสามารถแสดงความคิดเห็นว่าคำตอบของคุณคืออะไรและใช้ EOF บรรทัดว่างก็แค่นั้น (คำตอบเริ่มต้น) ปรากฎว่าเครื่องมือส่งออกนี้มี JSON ของตัวเองเพื่อตอบคำถามเหล่านี้ แต่ฉันคิดออกหลังจากที่ฉันทำสิ่งนี้ =)
ในการรันสคริปต์เพียงแค่อยู่ในไดเร็กทอรีที่คุณต้องการและรัน'sh autocomplete.sh'
ในเทอร์มินัล
ในระยะสั้นโดยใช้<< EOL & EOF ร่วมกับ Return Linesคุณสามารถตอบคำถามของพรอมต์แต่ละข้อได้ตามความจำเป็น แต่ละบรรทัดใหม่เป็นคำตอบใหม่
ตัวอย่างของฉันแสดงให้เห็นว่าสามารถทำได้อย่างไรพร้อมกับความคิดเห็นโดยใช้อักขระ `เพื่อให้คุณจำได้ว่าแต่ละขั้นตอนคืออะไร
สังเกตข้อดีอีกอย่างของวิธีนี้คือคุณสามารถตอบได้มากกว่าแค่ Y หรือ N ... อันที่จริงคุณสามารถตอบด้วยช่องว่างได้!
หวังว่านี่จะช่วยใครบางคนได้