У меня есть следующий сценарий:не может использовать псевдоним в обратные кавычки внутри Баш скрипт
for i in 1 2 3
do
alias echo${i}="echo ${i}"
alias aliastest${i}="echo aliastest `echo${i}`"
done
после его выполнения, я бы ожидать, чтобы иметь 3 псевдонимы в имена aliastest1, aliastest2, aliastest3.
Однако я получаю:
./test.sh: line 5: echo1: command not found
./test.sh: line 5: echo2: command not found
./test.sh: line 5: echo3: command not found
Обратите внимание, что при попытке выполнить echo1, echo2, echo3 из командной строки, он делает работу, как и ожидалось.
Что я делаю неправильно?
Псевдонимы немного странны для начала в 'bash'; вы должны использовать вместо этого функцию оболочки. Каков ваш * фактический * вариант использования? (Это либо просто демоверсия, либо исследование некоторых угловых случаев с псевдонимами. В любом случае, это не стоит вникать, если вы можете использовать функцию оболочки вместо этого.) – chepner
Очевидно, что это просто упрощенная ситуация с реальной проблемой, просто чтобы облегчить отправку здесь. Я принял ваше предложение и переключился на функции. Благодарю. – Yair