ใช้set -x
ในเปลือก
$ alias hello='echo hello world!'
$ hello
hello world!
$ set -x
$ hello
+ echo hello world!
hello world!
ใช้set -x
เปลี่ยนในxtrace
ตัวเลือกเปลือก ( set +x
จะปิด) และควรจะทำงานในทุกบอร์นเหมือนเปลือกหอยเช่นbash
, dash
ksh93
, และpdksh
zsh
สิ่งนี้จะแจ้งให้เชลล์เพื่อแสดงคำสั่งที่ได้รับการดำเนินการหลังจากการขยายนามแฝงและการขยายตัวแปร ฯลฯ ได้รับการดำเนินการ
เอาต์พุตจะอยู่ในสตรีมข้อผิดพลาดมาตรฐานของเชลล์ (เช่นเดียวกับพรอมต์สามัญ) ดังนั้นจะไม่รบกวนการเปลี่ยนทิศทางของเอาต์พุตมาตรฐานและจะถูกนำหน้าด้วยพรอมต์ตามที่กำหนดโดยPS4
ตัวแปรเชลล์ ( +␣
โดยค่าเริ่มต้น)
ตัวอย่างที่มีฟังก์ชั่นบางอย่าง:
$ world () { echo "world"; }
$ hello () { echo "hello"; }
$ helloworld () { printf '%s %s!\n' "$(hello)" "$(world)"; }
$ helloworld
hello world!
$ set -x
$ helloworld
+ helloworld
++ hello
++ echo hello
++ world
++ echo world
+ printf '%s %s!\n' hello world
hello world!
ฉันใช้กับset -x
เชลล์แบบโต้ตอบทั้งหมดของฉันตามค่าเริ่มต้น ดีใจที่ได้เห็นสิ่งที่ถูกดำเนินการจริง ... แต่ฉันสังเกตเห็นว่าการแท็บที่ตั้งโปรแกรมเสร็จ ฯลฯ อาจทำให้เกิดร่องรอยการส่งออกที่ไม่ต้องการในบางเชลล์
$@
ส่วนหนึ่งของนามแฝงของคุณหรือไม่ จำไว้ว่านามแฝงไม่สนับสนุนการขัดแย้งที่จะขยายไปยังพารามิเตอร์ตำแหน่ง (ถ้ามี) ของบริบทที่เรียกนามแฝง วิธีการทำงานตามปกตินั้นsomealias some args
ทำได้โดยการขยายนามแฝงและปล่อยให้อาร์กิวเมนต์เกิดขึ้น หากคุณต้องการเข้าถึงอาร์กิวเมนต์ให้ใช้ฟังก์ชั่นและเสนอราคา"$@"