Bashでエイリアスに追加のパラメータを含めない方法は?

Bashでエイリアスに追加のパラメータを含めない方法は?

私は次のようなことをしようとしています。

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

abcd.comBashで代替エントリを追加しないか、追加echo引数として受け入れる方法はありますか? (それぞれの方法に解決策がありますか?)

私は私ができると思いました。

alias ftp='sftp'

しかし、私はコマンドを使用しないことを思い出させるためにすべてのコマンドを停止したいと思いますftp

答え1

エイリアスを定義すると、作成したコマンドではなく、設定したコマンドが実行されます。つまり、 を実行するときにftp abc.com実際に実行される内容は次のとおりです。

echo do not use ftp. Use sftp instead abc.com

簡単な解決策は、エイリアスの代わりに関数を使用することです。

ftp(){ echo 'do not use ftp. Use sftp instead'; }

または、printfCostasの提案に応じて、次のものを使用できます。

alias ftp="printf 'do not use ftp. Use sftp instead\n'"

答え2

alias ftp='echo do not use ftp. Use sftp instead. # '

答え3

#エイリアス文字列の末尾にスペースとコメント文字を追加するだけです。

alias ftp='echo do not use ftp. Use sftp instead. #'
ftp abcd.com
do not use ftp. Use sftp instead.

これにより、パラメータがコメントとして扱われます。前にスペースを追加することを忘れないでください。#それ以外の場合は、エイリアス拡張後に別々のトークンとして解釈されません。

関連情報