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
.