Вы можете создать оболочку для вашей команды bash и поместить ее в переменную PATH перед другим исполняемым файлом, который изменяется.
Например:
Представление о том, что изменяющаяся команда bash находится в каталоге / c, и это ваш PATH:
PATH=/a:/b:/c
Один из подходов заключается в поместите оболочку с тем же именем в каталог / a (или / b), то есть в PATH перед / c. Итак, допустим, ваш старый скрипт называется old
и находится в каталоге / c. Вы можете создать сценарий old
в каталоге /a
и вызвать его для вызова другого сценария:
COMMAND="/c/old $( sed -e "s:-x::g" -e "s:-T::g" <<< "$@" )"
$COMMAND
Поэтому идея состоит в том, чтобы манипулировать аргументами команды перед вызовом сценария / c / old. Это потребует небольшой корректировки, если параметры более сложны (например, они могут принимать значение). Существует также вероятность цитирования, маловероятно, что цитаты выживут при таком подходе.
Если вам нужно усложнить ситуацию, вы можете рассматривать getopts как способ лучшего анализа параметров в скрипте / a / old.
Если честно, я не очень доволен этим ответом - он не будет работать в общем случае. Но вы спросили :) ...