Estoy tratando de hacer algo como
alias ftp='echo do not use ftp. Use sftp instead.'
solo para que ftpno se use accidentalmente. Pero me di cuenta de que
ftp abcd.com
hará que el comando haga eco
do not use ftp. Use sftp instead. abcd.com
porque abcd.comse considera que es un argumento a favor echo.
¿Hay alguna manera de hacer que Bash no agregue abcd.coma la sustitución, o hacer que echono lo tome como argumentos adicionales? (¿Hay una solución para cada enfoque?)
Supuse que podría hacerlo
alias ftp='sftp'
pero solo quiero hacer que el comando se detenga por completo para recordarme que no debo usar ftp.

ftpde otra manera, pero si desea hacerlo, use enprintflugar deecho:printf "Do not use ftp. Use sftp instead.\n\c"echoelsftpalias? es deciralias ftp='echo "Do not use ftp"; sftp'. Obtendrá el recordatorio, a la vez que se verá obligado a usarlosftp.ftpRespuestas:
Cuando define un alias, el comando que establece se ejecuta en lugar del que escribió. Esto significa que cuando ejecutas
ftp abc.com, lo que realmente se ejecuta esUna solución simple es usar una función en lugar de un alias:
Alternativamente, puede usar
printfcomo lo sugiere Costas:fuente
fuente
Simplemente ponga un espacio y el carácter de comentario
#al final de la cadena de alias:Esto hará que los parámetros se traten como un comentario. Simplemente no olvide agregar un espacio antes, de lo
#contrario no se interpretará como un token separado después de la expansión del alias.fuente