Her argümanını bir komut olarak çalıştıran bir bash betiği yazıyorum. Bu benim komutlarımda çalışır PATH
, ama takma adlar için geçerli değildir. Doğrudan koddaki bir diğer adı çağırabilirim, ancak bağımsız değişken olarak geçirilen bir diğer adı çağıramıyorum.
Sorun (sanırım) takma adların değişkenlerden önce genişletilmiş olmasıdır. Bir değişkenden takma ad çalıştırmanın bir yolu var mı?
Örnek komut dosyası:
#!/bin/bash
# File: runall
shopt -s expand_aliases
source ~/.aliases
while (( "$#" )); do
$1
shift
done
runall "echo test"
çalışır, ama runall "myalias"
verirrunall: line 8: myalias: command not found
eval
değişkenler için neden tehlikelidir ?