ฉันกำลังเขียนสคริปต์ทุบตีที่เรียกใช้อาร์กิวเมนต์แต่ละตัวเป็นคำสั่ง สิ่งนี้ใช้ได้กับคำสั่งในของฉันPATH
แต่ไม่ใช่สำหรับนามแฝง ฉันสามารถเรียกนามแฝงในสคริปต์โดยตรง แต่ฉันไม่สามารถเรียกนามแฝงที่ถูกส่งผ่านเป็นอาร์กิวเมนต์ได้
ปัญหา (ฉันถือว่า) เป็นนามแฝงที่จะขยายก่อนตัวแปร มีวิธีเรียกใช้นามแฝงจากตัวแปรหรือไม่?
สคริปต์ตัวอย่าง:
#!/bin/bash
# File: runall
shopt -s expand_aliases
source ~/.aliases
while (( "$#" )); do
$1
shift
done
runall "echo test"
ทำงานได้ แต่runall "myalias"
ให้runall: line 8: myalias: command not found
eval
ตัวแปร