.bashrc
を設定して、端末の幅が80文字以上の場合に長いプロンプトを表示します。それ以外の場合は、劣化した小さなプロンプトが表示されます。
これを実現するために、if
ステートメントを使用します。
dp_smaller_than=80
if [ $COLUMNS -lt $dp_smaller_than ]
then
Prompt_COMMAND="degr_Prompt"
else
Prompt_COMMAND="full_Prompt"
fi
このステートメントの前にsleep 0
または他のコマンドを置いた場合にのみ正しく機能します。そうでない場合、次のエラーが表示されます。
[: -lt: unary operator expected
注:ファイルの先頭にdegr_Prompt
関数とfull_Prompt
関数が定義されています。
COLUMNS
変数はbashupon receipt of a SIGWINCH.
によって設定されます(Shell Variables
のman bash
セクションを参照)。これは環境変数ではないため、スクリプトには設定されていません。自分を見てください:
$ export COLUMNS=$COLUMNS
$ ./your-script.sh
今では動作します。スクリプトでCOLUMNS
の値を取得する必要があります。次に、tput
を使用できます。
$ tput cols
186
COLUMNS
が.bashrc
に設定されていません。
次のようにtput cols
を介して列を取得するだけです。
dp_smaller_than=80
if [ $(tput cols) -lt $dp_smaller_than ]
then
Prompt_COMMAND="degr_Prompt"
else
Prompt_COMMAND="full_Prompt"
fi