2017-04-06 7 views
1

シェルからの人に「物事」を伝える必要があり、句読点を正しく自動的にエスケープするエイリアスを設定したいと考えています。macOSでsshコマンドで読みやすい区切りテキストを渡しますか?

私は現在など、カンマ、質問を除き、大きな作業のエイリアスを持っている:

tell_someone='ssh -e none [email protected] say' 

しかし、私はtell_someone "can you hear me?"を実行すると、それが返されます。

zsh:1: no matches found: me? 

tell_someone "can you hear me\?"が正常に動作している間。可能であれば、引用符の有無にかかわらず、この作業をしたいと思いますが、私はそれが明らかに句読点を逃れる必要があります。

単純なエイリアスを使用することはできますか、これをより堅牢な方法で処理するスクリプトを作成する必要がありますか?

注:私が働くすべての人がヘッドフォンを着用し、複数のモニターを持っているので、注意を喚起するのはほとんど不可能なので、私は大学のいたずらでコンピュータラボでやったように、私たちが人々でオーディオを再生していたSunのシステムでは... :)

答えて

2

エイリアスの代わりにこの関数を使用してみてください(心配しないでください。エイリアスと同じように感じます。 way):

tell_someone() { printf "%q" "$*" | ssh -x -e none [email protected] say } 

お客様のニーズに合わせて調整してください。