出力幅に端子列を合わせる

出力幅に端子列を合わせる

mysql select / commandの出力がデフォルトのターミナル列セット(80)を超えてきれいにフォーマットされ、ターミナルウィンドウのサイズを変更してすべての列を1行に表示できることがわかりました。構成する方法?私は80文字より長いコメントを含むHEREドキュメントで作業しており、これをSSHセッションに渡していますが(後で出力でそのコメントを見るのは大丈夫です)、行に展開するのではなく次のように終了します。 81番地に文字を入力し、次のメッセージが表示されたら、マイログインを上書きします。

これは私のスクリプトです。

#!/bin/bash
ssh -A -tt -l user1 192.168.1.10 <<ABC
#-----------------------------------------------------
#comments are very useful for explaining what does your code actually do. And sometimes they can be very long.
#-----------------------------------------------------
some_command
exit
ABC

これは私の結果です。

[user@server ~]$ #-----------------------------------------------------
 actually do. And sometimes they can be very long.explaining what does your code
[user@server ~]$ #-----------------------------------------------------

編集する

予想される結果:

[user@server ~]$ #-----------------------------------------------------
[user@server ~]$ # comments are very useful for explaining what does your code actually do. And sometimes they can be very long. Even over 80 characters.
[user@server ~]$ #-----------------------------------------------------

それを避ける方法を知っていますか?

ベストアンサー1

tty割り当て()を強制していますが、ssh -tt端末のサイズが正しく設定されていない可能性があります(おそらくサイズはありません)。そのオプションが必要であると仮定すると、-tt端末のサイズを設定する行を使用してスクリプトを起動できます。stty

#!/bin/bash
ssh -A -tt -l user1 192.168.1.10 <<ABC
stty $(stty size | sed 's/ / cols /;s/^/rows /')
#-----------------------------------------------------
#comments are very useful for explaining what does your code actually do. And sometimes they can be very long.
#-----------------------------------------------------
some_command
exit
ABC

ここでは、stty端末の実際のサイズを使用してコマンドを作成します。現在の端末が80x25の場合にstty size生成され、25 80交換後に生成されたコマンドはstty rows 25 cols 80.

おすすめ記事