Удалить последнее пространство из псевдонима

Я хочу создать псевдоним для 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 со следующим параметром?

Спасибо заранее.

1
задан 26 October 2015 в 20:27

2 ответа

Вы не можете давать параметры псевдонимов, НО вы можете обмануть его с помощью 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
1
ответ дан 23 May 2018 в 16:25
  • 1
    Хороший трюк! Работал как шарм! Использование функции для предоставления параметра также работает и сохраняет мне два или три символа, но ваше решение ближе к тому, что я спросил. – Carlos Eduardo Santos 26 October 2015 в 16:04

Используйте функцию как псевдоним вместо команды. Затем вы можете использовать параметр в теле функции, как описано в другом ответе.

0
ответ дан 23 May 2018 в 16:25
  • 1
    Ваш ответ согласен с одним из них, а также работает. Спасибо! – Carlos Eduardo Santos 26 October 2015 в 16:21

Другие вопросы по тегам:

Похожие вопросы: