Tôi đang viết một tập lệnh bash chạy từng đối số của nó dưới dạng một lệnh. Điều này làm việc cho các lệnh trong của tôi PATH
, nhưng không phải cho bí danh. Tôi có thể gọi trực tiếp một bí danh trong kịch bản, nhưng tôi không thể gọi một bí danh đã được thông qua như một đối số.
Vấn đề (tôi giả sử) là bí danh được mở rộng trước các biến. Có cách nào để chạy bí danh từ một biến không?
Kịch bản mẫu:
#!/bin/bash
# File: runall
shopt -s expand_aliases
source ~/.aliases
while (( "$#" )); do
$1
shift
done
runall "echo test"
hoạt động, nhưng runall "myalias"
chorunall: line 8: myalias: command not found
eval
các biến?