Я хочу создать псевдоним для xfreerdp, и мне нужно конкатенировать параметр / v: в моем псевдониме с именем сервера, который я, очевидно, предоставляю при вызове этого псевдонима.
Псевдоним:
alias r='xfreerdp /u:user /p:password /w:1300 /h:768 /sec:rdp /cert-ignore +cliprdr --plugin rdpsnd --plugin rdpdr --data disk:media:/tmp/RDP /v:'
Bash:
r mywindows.server.com
Результат:
tcp_connect: getaddrinfo (Não há endereço associado como nome) Ошибка: согласование или соединение протокола failureЕсть ли способ связать ваш псевдоним bash со следующим параметром?
Спасибо заранее.
Вы не можете давать параметры псевдонимов, НО вы можете обмануть его с помощью xargs, или, более конкретно, это флаг -I, который позволяет заменить строку. В этом примере я заменяю его заменой на замену REPLACESTRING любыми xargs.
Отредактированный псевдоним:
alias r='xargs -I REPLACESTRING xfreerdp /u:user /p:password /w:1300 /h:768 /sec:rdp /cert-ignore +cliprdr --plugin rdpsnd --plugin rdpdr --data disk:media:/tmp/RDP /v:REPLACESTRING'
Примечание: не знаете, как работает ваша команда xfreerdp, я заметил, что другие флаги, такие как /p:password, не оставляют пробелов между флагом и полем данных, поэтому отрегулируйте интервал /v: и REPLACESTRING по мере необходимости.
Выполнить так:
r <<< "server.somedomain.com"
или
echo "server.somedomain.com" | r
Используйте функцию как псевдоним вместо команды. Затем вы можете использовать параметр в теле функции, как описано в другом ответе.