Включение режима posix (например, путем вызова bash как sh
или с помощью команды (set -o posix) 2>/dev/null && set -o posix
должно помочь.
Даже в этом случае имейте в виду, что псевдонимы расширяются при разборе, а порядок между анализом и выполнением плохо определен. Например
alias foo=echo; foo bar
или
{
alias foo=echo
foo bar
}
попытается запустить foo
, поскольку псевдоним еще не определен во время разбора. Кроме того, некоторые оболочки анализируют весь ввод eval
или .
(источника) перед выполнением любого из них.
Таким образом, единственный переносимый и надежный способ использовать псевдонимы в сценариях - это определить их, а затем eval
или .
код, который их использует.