我正在尝试做类似的事情
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
。
echo
将sftp
别名添加到别名?即alias ftp='echo "Do not use ftp"; sftp'
。您将得到提醒,同时还被迫使用sftp
。
@JoshJolly我想让命令停止在一起,而不是让它“帆过”,以便不断提醒我不要使用
—
nonopolarity 2014年
ftp
注意,别名非常简单。它们不过是简单的字符串替换而已(附加的限制是(1)替换仅在命令字符串的开头发生,并且(2)是非递归的)。除了别名本身的定义之外,无法“配置”别名的工作方式。
—
Kyle Strand
抱歉,别名是递归的。不知道我在想什么。
—
Kyle Strand 2014年
ftp
通过其他方式禁止,但是如果您愿意,可以使用-printf
而不是echo
:printf "Do not use ftp. Use sftp instead.\n\c"