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'"

おすすめ記事