В bash и, возможно, других оболочках, завершение табуляции, включающее символ @
, будет:
Попытка выполнить завершение текста перед точка. Фактическое завершение зависит от приложения. Bash пытается выполнить завершение, обрабатывая текст как переменную (если текст начинается с «$»), имя пользователя (если текст начинается с «~»), имя хоста (если текст начинается с «@») , или команду (включая псевдонимы и функции) по очереди. Если ни один из них не дает совпадения, предпринимается попытка завершения имени файла.
Код для bash находится в /usr/share/bash-completion/bash_completion
, начиная с функции _user_at_host
.
Следующее работает намного лучше:
setenv suffix `basename $PWD`
В качестве оболочки вы указали /bin/tcsh.
А поскольку вы находитесь в csh
, это можно очень просто записать как:
mkdir "/tmp/userid_${cwd:t}"
где из текущего каталога $cwd
мы можем получить его базовое имя с помощью модификатора :t
.