Estou tentando fazer algo como
alias ftp='echo do not use ftp. Use sftp instead.'
apenas para que ftp
não seja usado acidentalmente. Mas eu notei que
ftp abcd.com
fará com que o comando faça eco
do not use ftp. Use sftp instead. abcd.com
porque abcd.com
é considerado um argumento para echo
.
Existe uma maneira de fazer com que o Bash não seja adicionado abcd.com
à substituição ou faça com que echo
não seja considerado como argumentos extras? (Existe uma solução para cada abordagem?)
Eu deveria poder fazer isso
alias ftp='sftp'
mas eu só quero fazer com que o comando pare todos juntos para me lembrar de não usar ftp
.
ftp
maneira diferente, mas se você quiser fazer isso - use emprintf
vez deecho
:printf "Do not use ftp. Use sftp instead.\n\c"
echo
aosftp
alias? iealias ftp='echo "Do not use ftp"; sftp'
. Você receberá o lembrete e também será forçado a usá-losftp
.ftp
Respostas:
Quando você define um alias, o comando que você define é executado em vez do que você escreveu. Isso significa que, quando você executa
ftp abc.com
, o que é realmente executado éUma solução simples é usar uma função em vez de um alias:
Como alternativa, você pode usar
printf
como sugerido por Costas:fonte
fonte
Basta colocar um espaço e o caractere de comentário
#
no final da sequência de alias:Isso fará com que os parâmetros sejam tratados como um comentário. Apenas não esqueça de adicionar um espaço antes,
#
caso contrário ele não será interpretado como um token separado após a expansão do alias.fonte