Score:0

First argument should convert to a variable and execute

ธง cn

I have declared arg="echo demo"

When we execute the command my_command arg, then arg should be converted to $arg and should be executed like

my_command () {
    $arg
}

How do I call $1 as a variable?

Liso avatar
sd flag
สิ่งที่คุณประกาศว่า `arg="echo demo"` เป็นตัวแปรไม่ใช่หรือ
tripleee avatar
nz flag
ไม่มีทางที่ฟังก์ชันของคุณจะทำงานได้อย่างถูกต้องกับสตริงที่ยกมา การกำหนดคำสั่งให้กับสตริงอาจเป็นสิ่งที่ผิดที่จะทำต่อไป อาจดู https://mywiki.wooledge.org/BashFAQ/050
Score:2
ธง us

เดอะ อีวาล เชลล์ในตัวทำในสิ่งที่คุณต้องการ:

$ ช่วย eval
eval: eval [หาเรื่อง ...]
    ดำเนินการอาร์กิวเมนต์เป็นคำสั่งเชลล์

    รวม ARGs เป็นสตริงเดียว ใช้ผลลัพธ์เป็นอินพุตไปยังเชลล์
    และดำเนินการตามคำสั่งที่ได้

ฟังก์ชันของคุณจึงมีลักษณะดังนี้:

คำสั่ง my_() {
    เท่ากับ $1
}

แทน $1 คุณยังสามารถใส่ $* และ my_command จะใช้จำนวนอาร์กิวเมนต์โดยพลการ

โปรดทราบว่าในตอนนั้น my_command น้อยกว่านามแฝงเล็กน้อยสำหรับ อีวาลคุณก็สามารถทำได้เช่นกัน:

นามแฝง my_command=eval

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา