แสดงร่างกายฟังก์ชั่นใน Bash


14

ฉันมีการตั้งค่าฟังก์ชั่นหลายอย่างใน.bashrcไฟล์ของฉัน ฉันต้องการแสดงโค้ดจริงของฟังก์ชันและไม่เรียกใช้งานเพื่ออ้างถึงบางสิ่งบางอย่างได้อย่างรวดเร็ว

มีวิธีใดบ้างที่เราจะเห็นนิยามฟังก์ชั่น?

คำตอบ:


15

declareในตัวของ-fตัวเลือกไม่ว่า:

bash-4.2$ declare -f apropos1
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}

ฉันใช้typeเพื่อจุดประสงค์นั้นมันสั้นกว่าที่จะพิมพ์;)

bash-4.2$ type apropos1
apropos1 is a function
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}

6

คุณสามารถใช้typeคำสั่งเพื่อทำสิ่งนี้

type yourfuncจะพิมพ์ฟังก์ชั่นไปยัง STDOUT ตามที่man typeกล่าวไว้

ยูทิลิตี้ประเภทจะระบุว่าแต่ละอาร์กิวเมนต์จะตีความอย่างไรหากใช้เป็นชื่อคำสั่ง

2
man type? Shell builtins มักไม่มีหน้าคนในระบบของฉัน
ผลิต

ฉันได้อัปเดตคำตอบของฉันพร้อมลิงก์ ระบบที่ฉันใช้คือ Arch Linux
jasonwryan

1
ขอขอบคุณ. ดูเหมือนว่าแพ็กเกจman-pagesมีอยู่มากมายใน Arch
จัดการ

ไม่มีปัญหา: เนื่องจากเป็นหนึ่งในหน้าเว็บของ POSIX ฉันคิดว่ามันจะมีการเผยแพร่อย่างกว้างขวาง ...
jasonwryan

4
help typeแสดงข้อมูลเฉพาะของ Bash
l0b0

0

สำหรับการใช้ข้อมูลคำสั่ง builtin:

help [-s|-d] COMMAND1 COMMAND2 ....

ตัวอย่างเช่น:

help help alias

สำหรับข้อมูลเกี่ยวกับพวกเขาทั้งหมดพิมพ์เช่น:

help -s '' 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.