เปิดโฟลเดอร์
เลือกโฟลเดอร์ที่มีสคริปต์ของคุณเป็นโฟลเดอร์ทำงาน; เครื่องมือไฟล์เช่น read_file และ grep จะทำงานภายในโฟลเดอร์นั้น เครื่องมือไฟล์ทำงานภายในโฟลเดอร์นั้น ในขณะที่ Shell, web และ SSH ไม่ถูกจำกัดไว้เพียงเท่านั้น
สคริปต์ Bash สามารถเริ่มทำงานได้สามวิธี: bash script.sh arg1 arg2, ./script.sh หลังจาก chmod +x ซึ่งทำงานได้เพราะบรรทัด shebang, หรือผ่านคำสั่ง exec builtin ซึ่งจะแทนที่ shell และจะไม่คืนค่ากลับ รูปแบบแรกง่ายที่สุดในการเริ่มต้น เพราะไม่ต้องเปลี่ยนสิทธิ์การเข้าถึง Shell จะรันคำสั่งในสภาพแวดล้อมที่คุณเลือก ซึ่งคือ WSL บนพีซีของคุณหรือระบบ Linux ที่คุณเป็นเจ้าของและเข้าถึงผ่าน SSH และการ์ดในแชทจะแสดงผลลัพธ์จริงและ exit code คุณเป็นผู้กำหนดอาร์กิวเมนต์ ดังนั้นคุณสามารถทดสอบกรณีปกติและกรณีล้มเหลวในการสนทนาเดียวได้ คนมักถามว่าควรเลือกรูปแบบใด: ใช้ bash script.sh ขณะที่คุณกำลังทดสอบ เพราะมันทำงานแม้ว่าไฟล์จะไม่มีสิทธิ์ execute และเปลี่ยนเป็น ./script.sh เมื่อสคริปต์เสร็จสมบูรณ์และเริ่มด้วยบรรทัด shebang ไม่ว่าคุณจะเลือกรูปแบบใด exit status จะเป็นตัวเลขเดียวกันตั้งแต่ 0 ถึง 255 และ 0 หมายถึงสคริปต์สิ้นสุดลงอย่างสำเร็จ
เลือกโฟลเดอร์ที่มีสคริปต์ของคุณเป็นโฟลเดอร์ทำงาน; เครื่องมือไฟล์เช่น read_file และ grep จะทำงานภายในโฟลเดอร์นั้น เครื่องมือไฟล์ทำงานภายในโฟลเดอร์นั้น ในขณะที่ Shell, web และ SSH ไม่ถูกจำกัดไว้เพียงเท่านั้น
ใช้ Ask first เพื่อดูการเปลี่ยนแปลงแต่ละครั้งเป็น diff, หรือ Plan only เพื่ออ่านแผนก่อน Auto-run จะดำเนินการทันที Ask first จะหยุดชั่วคราวเฉพาะก่อนการกระทำที่เปลี่ยนแปลงบางอย่าง
อธิบายการรันด้วยคำพูดธรรมดา เช่น: รันสคริปต์พร้อมอาร์กิวเมนต์ test ระบุ WSL หรือเซิร์ฟเวอร์ของคุณหากคุณมีทั้งสองอย่าง ระบุชื่อสคริปต์และอาร์กิวเมนต์ให้ถูกต้อง
เปิดการ์ดเพื่อดูผลลัพธ์และ exit code จริง จากนั้นยอมรับหรือปฏิเสธการแก้ไขใดๆ ตัวเลขที่ไม่ใช่ 0 เป็นข้อมูล รันอีกครั้งหลังจากการแก้ไขที่ยอมรับทุกการแก้ไข เปรียบเทียบมันกับผลลัพธ์ที่คุณคาดหวัง
bash greet.sh testexit 0bash greet.shexit 2greet.shreadUsage1 match#!/usr/bin/env bash
# greet.sh - print a greeting a few times
set -eu
if [ "$#" -lt 1 ]; then
echo "Usage: $0 NAME [COUNT]" >&2
exit 2
fi
name="$1"
count="${2:-1}"
for i in $(seq 1 "$count"); do
echo "Hello, $name ($i)"
done
exit 0greet.sh หยุดด้วยบรรทัดการใช้งานและ exit code 2 เมื่อไม่มีชื่อ รับจำนวนที่เลือกได้โดยมีค่าเริ่มต้นเป็น 1 และพิมพ์คำทักทายในลูปเท่านั้น อ่านมันหนึ่งครั้งก่อนรัน: ไม่มี sudo, ไม่มีการดาวน์โหลด และไม่มีอะไรที่เคลื่อนย้ายหรือลบไฟล์ ดังนั้นจึงปลอดภัยที่จะทดสอบบนเครื่องที่คุณเป็นเจ้าของ บรรทัดแล้วบรรทัด: shebang ระบุตัวแปลภาษา, set -eu หยุดเมื่อเกิดข้อผิดพลาดและตัวแปรที่ไม่ได้กำหนด, การทดสอบ $# นับอาร์กิวเมนต์ และลูป for จะพิมพ์ออกเท่านั้น
เริ่มด้วยโฟลเดอร์ทำงานที่ว่างเปล่า ถามเอเจนต์ให้เขียนตัวอย่างด้านบน และ write_file จะสร้าง greet.sh ในโฟลเดอร์นั้น เปิดการ์ดและอ่านไฟล์ทีละบรรทัด: บรรทัดแรกคือ shebang ที่ระบุตัวแปลภาษา, set -eu จะหยุดสคริปต์เมื่อเกิดข้อผิดพลาดและตัวแปรที่ไม่ได้กำหนด และการตรวจสอบ $# ปกป้องส่วนที่เหลือจากการไม่มีชื่อ ภายใต้ Ask first ไฟล์ใหม่จะรอการอนุมัติของคุณก่อนที่จะเขียน ไม่มีอะไรทำงานyet สาขา usage ของสคริปต์นี้จะเลือก 2 สำหรับการใช้งานที่ผิด ซึ่งเป็นข้อตกลงทั่วไปที่ยอมรับไฟล์ก็ต่อเมื่อคุณเข้าใจแต่ละบรรทัดแล้ว และหากคุณไม่เข้าใจ ให้ถามเอเจนต์ให้อธิบาย การแก้ไขที่ปฏิเสธจะทำให้โฟลเดอร์ไม่เปลี่ยนแปลง
คนที่ค้นหา “bash execute script” มักต้องการบรรทัดเดียว: bash greet.sh test ถามเอเจนต์ให้รันมัน และ Shell จะเริ่มคำสั่งในสภาพแวดล้อมของการสนทนาของคุณ เช่น WSL และส่งกลับผลลัพธ์จริงและ exit code จริง ขยายการ์ดเพื่อดูผลลัพธ์เต็มรูปแบบ จากนั้นถามให้มีการรันเดียวกันโดยไม่มีอาร์กิวเมนต์ และคุณควรเห็นบรรทัดการใช้งานและ exit code 2 exit code สำหรับแอปพลิเคชัน cli เป็นตัวเลขตั้งแต่ 0 ถึง 255 ที่ผู้เรียกอ่าน และ 0 หมายถึงความสำเร็จ, exit code 127 หมายถึงไม่พบคำสั่งและ 126 หมายถึงไม่สามารถรันไฟล์ได้ ดังนั้นตัวเลขสองตัวนี้ชี้ไปที่คำผิด โปรแกรมที่ขาดหายไป หรือสิทธิ์ execute ที่ขาดหายไป
read_file แสดงสคริปต์และ grep ค้นหาว่า $1 และ $2 ถูกใช้ที่ไหน ดังนั้นคุณสามารถตรวจสอบว่าอาร์กิวเมนต์แต่ละตัวมีค่าเริ่มต้นหรือข้อความข้อผิดพลาดหรือไม่ นี่คือวิธีแยกแยะอาร์กิวเมนต์ที่เลือกได้: สคริปต์วนซ้ำด้วย getopts และด้วยค่าเพียงหนึ่งหรือสองค่า $1 และ ${2:-1} ธรรมดาเพียงพอ aliases ที่มีอาร์กิวเมนต์ไม่ทำงานเหมือนฟังก์ชัน เพราะ alias จะแทนที่คำที่พิมพ์ด้วยข้อความเท่านั้น ดังนั้นใช้ฟังก์ชันเมื่อค่าต้องอยู่ตรงกลาง ถามเอเจนต์ให้เปลี่ยนสิ่งหนึ่ง เช่น ค่าเริ่มต้นของ count และอ่าน diff ที่ edit_file แสดง จากนั้นรันสคริปต์อีกครั้งและเปรียบเทียบ exit code ใหม่กับค่าเก่า Plan only สามารถแสดงพารามิเตอร์ที่สคริปต์เข้าใจได้โดยไม่ต้องรันอะไรเลย
ขั้นตอนเดียวกันทำงานเมื่อสภาพแวดล้อมการทำงานคือระบบ Linux ที่คุณเป็นเจ้าของ ซึ่งเข้าถึงผ่าน SSH เครื่องมือไฟล์ยังคงทำงานในโฟลเดอร์ทำงานของการสนทนา ในขณะที่คำสั่ง Shell ทำงานในสภาพแวดล้อมที่คุณเลือก ดังนั้นตรวจสอบว่าการ์ดอ้างถึงสิ่งใด exec builtin ซึ่งผู้คนค้นหาเป็น “bash exec script” จะแทนที่ shell ด้วยคำสั่งอื่นและจะไม่คืนค่า ดังนั้นไม่มีอะไรหลังจากนั้นทำงานและ exit code คือของคำสั่งใหม่ เก็บสำเนาไว้ก่อนที่สคริปต์จะเคลื่อนย้ายหรือลบไฟล์ รันด้วย echo ก่อนเป็นการทดสอบแห้ง และใช้เฉพาะเครื่องที่คุณได้รับอนุญาตให้ดูแล อ่านการ์ดสุดท้ายก่อนปิดการสนทนา เมื่อคุณส่งค่าทั้งหมดไปยังคำสั่งอื่น ให้เขียน "$@" ในเครื่องหมายคำพูดคู่เพื่อให้ทุกค่าคงรูปร่างไว้