मैं एक बैश स्क्रिप्ट लिख रहा हूं जो इसके प्रत्येक तर्क को एक कमांड के रूप में चलाती है। यह मेरे लिए आदेशों के लिए काम करता है 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
चर के लिए खतरनाक क्यों है ?