Я пытаюсь сделать что-то вроде
alias ftp='echo do not use ftp. Use sftp instead.'
просто так, ftp
чтобы случайно не использовать. Но я заметил, что
ftp abcd.com
вызовет эхо команды
do not use ftp. Use sftp instead. abcd.com
потому что abcd.com
принято считать аргументом для echo
.
Есть ли способ сделать так, чтобы Bash не добавлялся abcd.com
к подстановке, или заставлял echo
не принимать это как дополнительные аргументы? (Есть ли решение для каждого подхода?)
Я предполагал, что смогу сделать это
alias ftp='sftp'
но я просто хочу заставить команду остановиться все вместе, чтобы напомнить себе не использовать ftp
.
ftp
по-другому, но если вы хотите это сделать - используйтеprintf
вместоecho
:printf "Do not use ftp. Use sftp instead.\n\c"
echo
кsftp
псевдониму? то естьalias ftp='echo "Do not use ftp"; sftp'
. Вы получите напоминание, также будучи вынужденным использоватьsftp
.ftp
Ответы:
Когда вы определяете псевдоним, указанная вами команда запускается вместо той, которую вы написали. Это означает, что при запуске
ftp abc.com
выполняетсяПростое решение - использовать функцию вместо псевдонима:
В качестве альтернативы, вы можете использовать
printf
как предложено Костасом:источник
источник
Просто поставьте пробел и символ комментария
#
в конце строки псевдонима:Это приведет к тому, что параметры будут рассматриваться как комментарий. Просто не забудьте добавить пробел,
#
иначе он не будет интерпретироваться как отдельный токен после расширения псевдонима.источник