Pageferry
ผลิตภัณฑ์

โค้ดสถานะ Bash ผลลัพธ์สคริปต์ และ diff ของไฟล์ในการ์ดแชท

01

โค้ดสถานะ Bash คือตัวเลขที่คำสั่งส่งคืนเมื่อสิ้นสุด: 0 หมายถึงสำเร็จ และ 1 ถึง 255 หมายถึงล้มเหลว Pageferry รันสคริปต์ของคุณด้วย Shell อ่านตัวเลขนั้นจากกระบวนการจริง และแสดงไว้ในการ์ดแชทถัดจากผลลัพธ์ มันยังแก้ไขไฟล์ได้ โดยแสดง diff ก่อน

01

รันสคริปต์

Shell รันสคริปต์ Bash ของคุณใน WSL หรือผ่าน SSH และแสดงโค้ดสถานะจริงในแชท

02

อ่านไฟล์

read_file และ grep แสดงสคริปต์ของคุณในแชท เพื่อให้คุณสามารถค้นหาว่า $1 และ $2 ถูกใช้ที่ไหน

03

แก้ไขพร้อม diff

edit_file เสนอการเปลี่ยนแปลงและแสดง diff ภายใต้ Ask first มันจะรอการยืนยันจากคุณ

สิ่งที่เอเยนต์ทำได้

ลักษณะการรันในแชท

แต่ละการกระทำกลายเป็นการ์ดในแชท Shell รายงานโค้ดสถานะจริง edit_file แสดง diff และ Ask first รอการยืนยันจากคุณก่อนมีการเปลี่ยนแปลง เปิดการ์ดเพื่ออ่านผลลัพธ์เต็มหรือ diff เต็ม

สี่งานพร้อมโค้ดสถานะและอาร์กิวเมนต์

ตรวจสอบโค้ดสถานะเมื่ออาร์กิวเมนต์หายไป

คุณถามเอเยนต์เพื่อค้นหาสิ่งที่เกิดขึ้นเมื่อ check.sh ไม่ได้รับอาร์กิวเมนต์ read_file เปิดสคริปต์ และ Shell รัน bash check.sh โดยไม่มีอาร์กิวเมนต์ต่อจากชื่อ การ์ดแสดงผลลัพธ์จริงและโค้ดสถานะ ซึ่งคือ 2 หากสคริปต์พิมพ์ข้อความการใช้งานไปยัง standard error และจบด้วย exit 2 โค้ดสถานะ bash ของคำสั่งล่าสุดอยู่ใน $? และผู้เรียกเห็นเพียงตัวเลขนั้น ดังนั้นสคริปต์ที่จบด้วยโค้ดที่ชัดเจนจึงทดสอบได้ง่ายกว่าสคริปต์ที่คืนค่า 1 เสมอ จากนั้น Shell รันสคริปต์อีกครั้งด้วยค่าสองค่า และการ์ดควรแสดง 0 หากโค้ดทำให้คุณประหลาดใจ ให้อ่านการ์ด จากนั้นให้ edit_file เสนอการแก้ไขภายใต้ Ask first และตรวจสอบ diff

แยกตัวเลือกด้วย getopts

คุณพิมพ์ “อธิบาย getopt ให้ฉัน” และเอเยนต์ตอบเป็นภาษาธรรมดา: getopts เป็นคำสั่งสร้างใน Bash สำหรับตัวเลือกสั้นๆ เช่น -v หรือ -f file ในขณะที่ getopt เป็นคำสั่งแยกต่างหากที่จัดการตัวเลือกยาวๆ เช่น --file และมีพฤติกรรมต่างกันในระบบต่างๆ จากนั้น read_file เปิดสคริปต์ของคุณ edit_file เพิ่มลูป getopts และคุณเห็น diff Shell รันสคริปต์ด้วย -v, ด้วย -f และด้วยตัวเลือกที่ผิด และแต่ละการ์ดมีโค้ดสถานะของตัวเอง ตัวเลือกที่ผิดควรจบด้วย 2 ซึ่งเป็นโค้ดทั่วไปสำหรับการใช้งานที่ผิด สำหรับตัวเลือกจำนวนน้อย ลูป while พร้อม case และ shift เพียงพอ ดังนั้นให้ขอเวอร์ชันนั้นหากคุณชอบมัน ยอมรับ diff เฉพาะหลังจากที่คุณอ่านมันแล้ว

รักษาค่าที่มีช่องว่างให้เป็นหนึ่งเดียว

การส่งอาร์กิวเมนต์ที่มีช่องว่างไปยังสคริปต์จะล้มเหลวหากค่าไม่มีการใส่เครื่องหมายคำพูด เพราะ shell จะแยกคำเหล่านั้นเป็นคำแยกกัน เอเยนต์อ่านไฟล์ด้วย read_file พบ $1 และ $@ ที่ไม่มีเครื่องหมายคำพูด และ edit_file เสนอใส่เครื่องหมายคำพูดคู่รอบๆ ค่าเหล่านั้น จากนั้น Shell รันสคริปต์ด้วยค่าเช่น "two words" และผลลัพธ์แสดงว่ามันมาถึงเป็นบรรทัดเดียวหรือสองบรรทัด หนึ่งในเคล็ดลับในการจัดการอาร์กิวเมนต์บรรทัดคำสั่งคือ shift ซึ่งลบค่าแรกออกเพื่อให้ลูปสามารถวนผ่านค่าที่เหลือได้ และเอเยนต์สามารถเพิ่มมันใน diff เดียวกัน ภายใต้ Ask first การแก้ไขจะรอคุณ ตรวจสอบ diff รันการทดสอบอีกครั้ง และเปรียบเทียบผลลัพธ์ทั้งสองด้วยตัวเอง

หยุดเมื่อเกิดข้อผิดพลาดด้วย set -eu

ใครก็ตามที่ค้นหา “bash exit script” มักจะกำลังมองหา exit builtin: exit N จบสคริปต์ด้วยสถานะ N ในขณะที่ return N ออกเพียงฟังก์ชัน เอเยนต์สามารถเพิ่ม set -eu และ set -o pipefail ที่ด้านบน เพื่อให้สคริปต์หยุดเมื่อเกิดข้อผิดพลาดและเมื่อตัวแปรยังไม่ได้กำหนด จากนั้นรันไฟล์ด้วย bash -n เพื่อตรวจสอบไวยากรณ์และด้วย bash -x เพื่อพิมพ์แต่ละคำสั่ง หาก return ไม่ให้สถานะของคำสั่งล่าสุด มักมีคำสั่งอื่นรันระหว่างทาง เพราะ $? เก็บเฉพาะโค้ดสถานะของคำสั่งล่าสุดที่สุด การ์ด Shell แสดงการติดตาม อ่านมันจากด้านบน เปรียบเทียบกับสคริปต์และตัดสินใจว่าการแก้ไขคงอยู่หรือไม่

สิ่งที่ Pageferry ไม่ได้ทำ

Pageferry เป็นแอปเดสก์ท็อปสำหรับ Windows ไม่ใช่บริการโฮสต์หรือปลั๊กอิน มันออกแบบมาสำหรับไฟล์ของคุณเอง พีซีของคุณ และเซิร์ฟเวอร์ที่คุณได้รับอนุญาตให้ใช้งาน คุณเก็บงานภายในขอบเขตนั้น เพราะเอเยนต์ไม่ได้บังคับใช้ และ Shell, web และ SSH ไม่ได้จำกัดอยู่เพียงโฟลเดอร์ทำงาน รหัสและผลลัพธ์อาจผิดพลาดได้ ดังนั้นให้ตรวจสอบ diff และทดสอบ Secrets ที่ปรากฏในผลลัพธ์ของเครื่องมือจะถูกปิดบังก่อนส่งไปยังโมเดล

Pageferry สำหรับ Windows

รันสคริปต์ Bash ครั้งถัดไปของคุณพร้อมโค้ดสถานะที่มองเห็นได้

ดาวน์โหลด Pageferry ↗