Такого механизма нет. Псевдонимы вроде как делают это, но они не работают как переменные. Расширение переменных должно быть помечено $
(что не так уж и много).
Имена хостов, в частности, могут быть псевдонимами несколькими способами:
через /etc/host
$ip|$target_hostname $hostalias
через хост-файл пользовательского уровня, указанный в export HOSTALIASES=$the_hostfile
$hostalias $ip|$target_hostname
через dns
через ваш конфигурационный файл ssh ('~/.ssh/config') (только для ssh):
Host $hostalias
HostName $target_hostname
В bash
и других оболочках POSIX, {
и }
- это не совсем специальные символы, а скорее специальные слова в данном контексте. При создании составной команды, как в определении функции, важно, чтобы они оставались словами, то есть были окружены пробелами.
Последняя команда в однострочном определении функции, подобном этому, должна завершаться точкой с запятой. В противном случае закрывающая скобка }
рассматривается как аргумент команды.
В качестве дополнения, если вы хотите, чтобы ваша функция была переносима в другие оболочки POSIX, лучше использовать другой синтаксис функций:
kk () { kate 2>/dev/null 1>&2 & disown; }
Использование function
специфично для bash
, в то время как форма, приведенная здесь, работает с bash
, а также с другими оболочками, такими как sh, Korn и Almquist.
disown
также специфичен для bash.
Размещение его на нескольких строках позволяет избежать добавления лишних ;
и дает один способ написать функцию, даже если он содержит множество команд.
function kk {
kate 2>/dev/null 1>&2 & disown
}