Лучше использовать функцию оболочки:
doit () {
local dir
case $PWD/ in
/home/alpha/*) dir=alpha ;;
/home/beta/*) dir=beta ;;
/home/gamma/*) dir=gamma ;;
*) echo 'Not standing in the correct directory' >&2
return 1
esac
python "/home/$dir/src/doit.py" --clean "$@"
}
Это установит переменную dir
в строку alpha
, beta
или gamma
в зависимости от текущего рабочего каталога или выдаст сообщение о том, что вы находитесь в неправильном дереве каталогов, если текущий каталог находится в другом месте.
Затем он запускает сценарий Python, используя значение $dir
с опцией --clean
и добавляет любые другие аргументы, которые вы передали функции.
Вам следует добавить определение этой функции оболочки везде, где вы обычно добавляете псевдонимы.
Вы можете просто использовать его, как показано ниже:
alias doit='doit=$(pwd)/src/doit.py;$doit --clean'